@magicstar
Drago mi je da si se javio, nisam bio pretjerano optimistican u nadanju da ce se na ovom forumu naci jos neko da petlja sa ARM-om.
Nadam se da ces se i ti pridruziti ovoj diskusiji i svojim iskustvima povecati kvalitet i zanimljivost teme.
Dakle, evo kako je protekao prvi dan:
Nakon reinstalacije XP-a na PC-ju i neophodne promjene starog kulera koji je nesnosljivom jacinom zvuka simulirao zvuk usisivaca jacine par hiljada vati, pristupilo se instalaciji Out-of-the-Box rjesenja sa Olimex-ovog CD-a koji je stigao uz ARM-USB-OCD. Eclipse IDE zahtjeva Java Run Time Enviroment, a ako ga nemate moze biti automatski instaliran sa ovog CD-a.
Pokazalo se da sam neopravdano bio skeptican. Iako prethodne verzije ovog CD-a manje vise nisu radile same od sebe ili cak nikako, ova izgleda radi!
Instalacija softvera je protekla bez problema, kao i instalacija drajvera za ARM-USB-OCD.
Evo sta je instalirano:
- Compiler: ARM-GCC
- Debug-server: Zylin gdb
- openOCD za vezu izmedju debug-servera i JTAG-a
- Eclipse IDE za C/C++
Izgleda da je ova instalacija bazirana na
yagarto toolchain-u (
http://www.yagarto.de/).
U odnosu na ono sto sam ja bio naumio da sklopim osnovna razlika je u debug-serveru. Ja sam mislio da stavim obicni
gdb dok je ovdje upotrebljen neki plugin za Eclipse koji je napravila firma Zylin, a koji je valjda unapredio podrsku za gdb u Eclipse-u.
Dakle, eto nema velike razlike izmedju ta dva setup-a, ali me interesujue da li bi debagiranje sa gdb-om pod Eclipse-om radilo i bez tog Zylin-ovog plugin-a.
Svi ovi alati se integrisu u Eclipse, tako da je rad isti kao i u bilo kojem drugom komercijalnom IDE-u: sav proces se odvija u okviru jednog programa - interfejsa, i kroz njegove menije.
Uz pomenute stvari instaliraju se odmah i razni Example-projekti za plocice koje Olimex proizvodi. Odmah po pokretanju Eclipse-a, pojavilo se stablo foldera sa postojecim projektima, gdje sam izabrao projekt za STM32-H103 i isti otvorio.
Zatim sam kliknuo na Project -> Build All i za nekoliko sekundi projekat se iskompajlirao bez greski i sa 2-3 "Warnings-a" koji su se zalili na nepostojanje nekih include-foldera, koji u stvari postoje, ali na drugom mjestu od onih na koje je projekt podesen. No posto je kompjaliranje ipak proslo bez problema nisam se bakcao time da svrljam po "Project settings..." i da ispravljam krive Drine. Mozda neki drugi dan.
Sledece je bilo da se pokrene openOCD, a to je islo sa Run -> External Tools -> Open OCD ARM. Dakle, i to je vec bilo prepodeseno u instalaciji (a osim Open OCD ARM-a ima jos i Open OCD ARM Tiny, za onaj drugi JTAG pomenut u prvoj poruci, te jos ponesto ali ne obratih paznju sta :).
Nakon klika na pomenutu komandu izbacio je prozorce sa greskom da nije podesen "Target Project" ili tako nesto, pa sam u Run -> External Tool Configuration odabrao Open OCD ARM i podesio tekuci projekt kao target project i pokrenuo ponovo Run -> External Tools -> Open OCD ARM.
Ovaj put nije bilo greske i u Console Window poceo je da se pojavljuje tekst sa informacijama o komunikaciji openOCD sa chip-om dok je JTAG skenirao chip sto je znak da je uspostavljena komunikacija sa mikrokontrolerom.
Sledeci korak je bio da se pokrene debuger: Run -> Debug -> pa se odabere koji "debug". Tu sam odabrao pomenuti Zylin i u Console Window je poceo da se izlistava tekst koji je informisao o tome sta se trenutno radi (brzina uspostavljene komunikacije, koji fajl se upisuje u chip, koliko je velik, koliko je upis trajao i tome slicno).
I to je zavrseno za neki sekund i klikom na Run komandu u Debug Window-u led dioda na plocici je pocela da blinkuje. Stop, Pause, Step In, Step Out, Step Over i jos neke komande (nesto tipa Step with Filter... ne sjecam se tacno kako bijese) radi sve bez problema. Na lijevoj strani Debug prozora se prikazuje source kod, a na desnoj asembler. Da bih jos jednom sve provjerio, promjenio sam duzinu pauze u glavnom programu, ponovo iskompajlirao i ucitao u mikrokontroler i brzina blinkanja se promjenila.
Eto, to je bio prvi dan.
Mogu reci da sam prijatno iznenadjen, s obzirom da za sve ovo od pocetka do kraja (ukljucujuci i instalaciju) nije proteklo vise od 15-tak minuta.
Pomenuti niz operacija (kako sam znao gdje i sta da kliknem) je rezultat nekih mojih ranijih interesovanja za pomenuto okruzenje i ovu problematiku, tako da bi neko ko se nikad nije susretao sa ovim okruzenjem i ovim setup-om vjerovatno morao malo da prolista neki od help-dokumenata koji su stigli na CD-u.
Medjutim to nisu nikakvi zvanicni Olimex-ovi dokumenti, niti Eclipse-ovi niti sta slicno tome. Radi se o dokumentima nekih privatnih likova-entuzijasta koji su to okacili "free" na internet, pa Olimex odnekud pokupio. Uostalom, i sam Olimex je sastavio ovaj toolchain na osnovu jednog od tih uputstava.
Znaci sve u svemu, osim troskova za hardver (koji su uporedivi sa najeftinijom klasom 8-bitih mikrokontrolera) imamo sasvim pristojno besplatno razvojno okruzenje za ARM procesore.
Eclipse je u svakom slucaju prvoklasan IDE, a i JTAG se barem u ovom prvom danu pokazao bez mana.
E sad, o kvalitetu gcc kompajlera se moze polemisati, ali s obzirom da je potpuno besplatan u odnosu na par iljadarki u poredjenju sa drugim komercijalnim proizvodima, ne moze mu se bas mnogo prigovoriti.
Uostalom, koliko god ima onih koji mu nalaze zamjerke jos vise ima onih koji ih osporavaju, dok su i neki od komercijalnih razvojnih alata koji se prodaju za solidne parice, bazirani takodje na gcc-u.
Znaci, u svakom slucaju, za nekog ko hoce da se jeftino oproba sa ovom klasom procesora mislim da je ovo jedna od boljih opcija.
I na kraju, posto je ovo proteklo bolje nego sto sam se nadao, tj. posto je razvojno okruzenje odmah proradilo, malo cu promjeniti plan desavanja pa cu prvo malo da se pozabavim samim mikrokontrolerom, pa kasnije setup-om freetoolchain-a (nezavisnim od Olimex-a) na Windowsu i Linux-u. Prvobitni plan je bio da prvo sredim tollchain posto sam mislio da ovaj Olimex-ov nece proraditi, ali kad je vec proradio onda da malo uzivamo i pustimo google na ispasu :)
Pozdrav!