Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ARM Cortex M3 - Free Toolchain

[es] :: Elektronika :: Mikrokontroleri :: ARM Cortex M3 - Free Toolchain

Strane: 1 2 3

[ Pregleda: 16423 | Odgovora: 51 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon ARM Cortex M3 - Free Toolchain10.07.2009. u 20:48 - pre 180 meseci
Nedavno sam u jednoj temi najavio da cu da cu probati sklepati neko jeftino okruzenje za razvoj ARM aplikacija, pa evo dosao je i taj trenutak.
Komponente koje sam narucio stigle su jos prije 2-3 nedelje, ali sve do sad nisam imao vremena da se pozabavim time.

Istovremeno pozivam i sve ostale koji su zainteresovani za mikrokontrolere bazirane na ARM jezgrima da se pridruze ovoj temi i iznesu bilo kakva svoja iskustva, zapazanja, predloge, pitanja...

Dakle, u mom slucaju radi se o ST-ovom mikrokontroleru STM32F103RB sa ARM Cortex M3 jezgrom.
Performanse ukratko:
Procesor: 32-bit
Flash: 128K
RAM: 20K
AD: 16x12-bit
Timers: 4x16-bit (16/16/18); 2xWDG, RTC, 24-bit down counter
Serial Interface: 2xSPI, 2xI2C, 5xUSART, USB, CAN
IOs: 51 (high current)
Brzina: 72MHz

Razvojnu plocicu na kojoj se nalazi ovaj mikrokontroler nabavio sam od Olimex-a (olimex.com). Radi se o plocici zavedenoj pod imenom STM32-H103, koju mozete vidjeti na slikama 1 i 2.

Na plocici nema nista drugo osim onog sto je potrebno da se mikrokontroler pokrene (oscilatori, napajanje), dvije led diodice (jedna za signaliziranje prisustva napajanja i jedna vezana na neki pin da se moze provjeriti jeli chip u zivotu), jednog reset dugmeta, jednog user-dugmeta, oscilator 32KHz, USB steker te 2x10 pinski standardni ARM JTAG konektor.
Sa donje strane se nalaze dva 26-pinska konektora za pristup I/O portovima mikrokontrolera. Sam mikrokontroler inace ima 64 pina.
Cijena ove plocice je 27€.

ARM JTAG (za programiranje i debugovanje) je takodje od Olimex-a, model ARM-USB-OCD. Osim standarnih funkcija JTAG-a, ovaj uredjaj jos obezbedjuje i dodatno napajanje od 5, 9 ili 12V koje pravi od napajanja sa USB porta racunara, te jos pravi i virtuelni RS232 port koga simulira preko USB porta (za racunare koji nemaju RS232 port, kao npr. vecina laptopova).
Ovaj uredjaj kosta 55€.
Inace, postoji i jeftinija verzija, ARM-USB-OCD-TINY koji nema virtuelni RS232 port i ne pravi dodatno napajanje, a kosta 40€.

Kako izgleda ARM-USB-OCD mozete vidjeti na slikama 3 i 4.

Uz ove JTAG-ove stize i CD sa koji bi trebalo da instalira kompletno razvojno okruzenje bazirano na GCC kompajleru i Eclipse IDE, te i neki prekompajlirani primjeri koji se mogu isprobati na plocici.

Navedena plocica i onaj prvopomenuti JTAG su me kostali 102€, ukljucujuci porez i troskove slanja. Ne znam koliko traje isporuka za Srbiju, ali Bogdan je u nekoj temi nedavno objasnio kako se preko, cini mi se Tagora, moze narucivati od Olimexa.

Na nekim internet forumima sam citao da ono sto se instalira sa tog Olimex-ovog CD-a nema sanse da proradi samo od sebe, pa sam nesto skeptican prema toj opciji. U svakom slucaju sutra cu da pripremim racunare (da instaliram Win XP na laptop i pripremim Linux na PC-u za svaki slucaj), pa cu da krenem da ceprkam po svemu tome.

U principu radi se o ARM GCC kompajleru, openOCD-u (open On-Chip-Debugger) i Eclipse okruzenju u kome se sve ovo integrise. Posto mi je ovo prvo susretanje sa Cortex M3 cipom, i ST mikrokontrolerom trebace malo vremena da se prelista datasheet, iskonfigurise chip, prouci prilicno obimna C-biblioteka, tako da cu rezultate postepeno dopisivati na ovoj temi, vec prema tome kako bude islo i koliko mi to vreme bude dozvoljavalo.

Pozdrav!



Prikačeni fajlovi
 
Odgovor na temu

magicstar
Nenad Mitic
Beograd

Član broj: 93723
Poruke: 21
93.86.92.*



Profil

icon Re: ARM Cortex M3 - Free Toolchain10.07.2009. u 22:02 - pre 180 meseci
Svaka cast na volji, informacijama i opisu. Ja se takodje bavim jezgrom Cortex-M3 i bas sa ST-ovim mikrokontrolerima(STM32F103RB, STM32F103ZE). Kao razvojnu ploce koristim bas ST-ove za pomenute mikrokontrolere, a kao razvojni alat koristim IAR Embedded Workbench 5.30. Toliko za pocetak.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: ARM Cortex M3 - Free Toolchain11.07.2009. u 22:06 - pre 180 meseci
@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!


 
Odgovor na temu

branko_g
Merna tehnika i elektronika

Član broj: 159227
Poruke: 756
*.static-fiber.styrion.net.



+9 Profil

icon Re: ARM Cortex M3 - Free Toolchain17.07.2009. u 11:08 - pre 179 meseci
Citat:

Odin_D:
...pa cu prvo malo da se pozabavim samim mikrokontrolerom...


I jel si nešto uradio u međuvremenu?
Eto postaknut tvojim primerom sam juče naručio te iste komponente kao i ti.
Trebale bi da stignu sredinom sledeće nedelje.
U međuvremenu cu pripremiti jednu rastersku pločicu, i to onu iz Conrada koja ima mesta
i za dva SUBD-9 konektora. Jedan bih korisito za RS232 a drugi za CAN, ili oba za RS232 a CAN posebno,
nisam još odlučio. Preko UART1 bih probao da li radi i interni Bootloader.
E kada bude UART proradio pribaću da aktiviram i ADC , pa PWM i tako redom...
Naravno potrajaće to, ali ako ima i drugih "saboraca" biće i lakše i brže.

Pozdrav
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: ARM Cortex M3 - Free Toolchain18.07.2009. u 11:50 - pre 179 meseci
Pozdrav Branko!
Drago mi je da necu biti sam, vec sam se bio zabrinuo sto se i ti ne javljas :)

Ja se zabavljam pomalo, onoliko koliko mi slobodno vreme dozvoljava, medjutim planiram da to intenziviram malo u skorije vreme, taman kad i tebi stignu narucene komponente :), pa da nastavimo zajedno.
I ja sam u medjuvremenu sastavio jedan kabal koji ima 10-pinski steker sa jedne strane, a DSUB-9 sa druge da se nadje ako zatreba, jer nisam bio siguran da li ce raditi debug u razvojnom okruzenju, pa reko' ajd da debagujemo slanjem poruka na PC preko RS232 :)
Ali dobro ce doci i za ostale stvari.

Ako jos nekog zanima, ima jedan ne toliko velik dokument, ali koristan za brzo upoznavanje sa ovim mikrokontrolerom gdje su na koncizan nacin objasnjenje neke osnovne stvari i data uputstva za brzi start. Radi se o "Hitex insiders guide to STM32 ARM microcontrollers". (Hitex je firma koja pravi kompajlere).
Moze se skinuti sa sledece adrese:
http://www.st.com/mcu/download...p;url=/mcdfiles/1221142709.pdf

Skoro sve periferije na ovom mikrokontoleru imaju pored standardnih i neke dodatne mogucnosti pa se nesto od toga moze i u tom dokumentu procitati.
Ja danas pocinjem sa proucavanjem ST-ove biblioteke za ovu familiju, pa cu nadam se za dan-dva skrpiti neki test programcic pa cu javiti utiske.

Pozdrav!




Prikačeni fajlovi
 
Odgovor na temu

milanmeh
Novi Sad

Član broj: 206027
Poruke: 213
*.ptt.rs.



+7 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.09.2009. u 13:15 - pre 178 meseci
Pozdrav od jednog zainteresovanog embedded zaludjenika! Zanima me kako ste narucili gore navedenu opremu, JTAG OCD i STM32 header board? Da li je islo preko neke firme ili direkt od olimexa pa postom?
 
Odgovor na temu

bobansa
Automatika, elektronika
Sabac

Član broj: 159318
Poruke: 69
91.150.71.*



+10 Profil

icon Re: ARM Cortex M3 - Free Toolchain27.07.2010. u 21:26 - pre 167 meseci
Pozdrav svima koje zanima ARM, ja sam takodje pocetnik i za pocetak sam nabavio nekoliko STM32 procesora kao i ST LINK za programiranje i debug programa. Zanima me kakava su vasa dosadasnja iskustva i koliko ste napredovali u svemu sto je vezano sa ARM-om?
Kotao Termomont TKU3 25KW, gorionik kucna radinost
Grejem 130m2
Izolacija stiropor 15cm zidovi, sem jednog zajednickog, tavanica 10-20cm vuna, pod 5cm
PVC stolarija dvostruko staklo
Vreme rada: dnevni rezim 8-22h, nocni 22-8h
Temperatura prostora: dnevni rezim 23.5*C, nocni 23*C
Grejanje bez prekida 24h
Vreme rada gorionika, zavisi od spoljne temperature, od 6-15h na dan

 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 02:16 - pre 165 meseci
da podelim par iskustatva ...

uzeo sam neku ET-STM32F103 plocku (na njoj je STM32F103RBT6 mcu) i igrao se par dana ... pa reko da podelim iskustva ..

od dzabe stvar najbolje sto sam nasao je CooCox - windoze only (radi 1/1 na linuxu pod wine-om), koristi gcc (rm-none-eabi-) toolchain sa podrskom za cortexm3 i ima biblioteke za periferije vecine avr cortexme procesora (podrzava ATMEL: AT91SAM3U4E AT91SAM3U4C AT91SAM3U2E AT91SAM3U2C AT91SAM3U1E AT91SAM3U1C; ST: STM32F103VB STM32F103V8 STM32F103T8 STM32F103RB STM32F103R8 STM32F103CB STM32F103C8; NXP: LPC1768 LPC1766 LPC1765 LPC1764 LPC1758 LPC1756 LPC1754 LPC1752 PC1751 LPC1311 LPC1313 LPC1342 LPC1343 LPC1111x101 LPC1111x201 LPC1112x101 LPC1112x201 LPC1113x201 LPC1113x301 LPC1114x201 LPC1114x301; Luminary: LM3S811 LM3S8962 LM3S9B96)

takodje sam napravio nativni gcc-none-eabi toolchain ( ovde ima sve sta i kako, patch za gcc etc, sve "samo" radi :D) ali nikako nisam uspeo da ga napravim da saradjuje sa eclipse-om...

Posto je ovaj dosao vec sa nekim "standardnim" ST bootloaderom nisam se igrao sa przilicom (nemam neki jtag za arm ali bi trebalo da radi sa buspirate+openOCD posto mislim da openOCD podrzava cortex m3) vec menjam firmware koristeci bootloader. Na srecu to radim direkt sa linuxa posto postoji python skript stm32loader.py kao i nativna applikacija (ovo koristim) stm32flash.

dalje, zgodna stvar za znati (ja svaki put trazim kako se to radi), posto kompajler nativno pravi ELF binary, da bi taj prebacili u HEX fajl (koji loaderi umeju da spucaju na mcu):

Code:

arm-none-eabi-objcopy -O ihex projectname.elf projectname.hex


isto tako ako hocemo OBJ

Code:

arm-none-eabi-objcopy -O binary projectname.elf projectname.bin


objcopy ume takodje da pravi i elf32-littlearm elf32-bigarm elf32-little elf32-big srec symbolsrec verilog tekhex targete .. no za njima nikada nisam imao potrebe...


sta jos znacajno ... da, probao sam demo verzije IAR-a i KEIL-a .. deluju zanimljivo, meni se KEIL vise svidja ali su mnogo bre skupi .. ukrao sam KEIL i instalirao (v4.0 i v3.nesto) na virtualboxovan xp pa cu da se igram jos malo posto se primeri koje sam dobio uz plocu teraju na IAR i KEIL-u automatski (za CoCoox moram da ih budzim, nije 1/1 kompatibilno)

sve u svemu - zanimacija :D ... mnogo snage u malom chipu, kada se uporedi sa 8bitnim mcu-ovima prosto je smesno (obzirom da ovi 32bitni kostaju skoro kao 16F84 :D - 16F84 je 8$ a STM32F103RBT6 je 9$ u istoj radnji)

DA, zanimljivo, danas sam od drugara cuo da ST mozda vise nece da pravi mikrokontrolere tako da .. mozda je bolje preci na neki drugi cortexm3 (npr atmel ili nxp) no generalno jezgro je isto, svi ovi kompajleri podrzavaju skoro sve njih tako da je samo pitanje biblioteka .. a i st ce verovatno nekome prodati svoj mcu pogon ako i odluce da ih vise ne rade tako da ce vec da se pojave isti ovi pod drugim imenom
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 13:17 - pre 165 meseci
Imas Atolic Studio (atollic.com) koji je besplatan za C. Baziran je na Eclipse-u i GCC-u.
ST-link JTAG je 20-30 evra.

Citat:
DA, zanimljivo, danas sam od drugara cuo da ST mozda vise nece da pravi mikrokontrolere tako da

Zanimljiva informacija. Mozes li nekako doci do izvora tih glasina. Nisam cuo nista slicno, a i zvuci malo nevjerovatno, posto intenzivno izbacuju nove "products line" mikrokontrolere svako malo, a i rekao bih da su im mikrokontroleri medju glavnim proizvodima...

Ima jos i Stellaris familija Cortexa koja je sad TI-ova. Imaju zanimljivih kit-ova.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 15:05 - pre 165 meseci
Citat:
Odin D.: Imas Atolic Studio (atollic.com) koji je besplatan za C. Baziran je na Eclipse-u i GCC-u.


znaci nesto kao ovaj CooCox .. probacu .. CooCox ima lepo zamisljen ide (skidas biblioteke sa neta, on ti ih samo dodaje u projekat i slicno ... ) mada nisu "prepisali sve" tako da ne mogu da mesam standardni ST lib sa ovim sto su oni prepisali .. pa je malo naporno za pocetnika kao sto sam ja .. ne znam el "do mene" el "do njih" kada nesto ne radi .. mada, mislim da cu morati "back to basics" i da procitam prvo datasheet za ovaj mcu, ne znam zasto sam krenuo od C-a umesto da prvo iscitam datasheet

Citat:
Odin D.:
ST-link JTAG je 20-30 evra.


ne znam dal mi treba .. generalno na ovoj plocki imam par ledara, adc, steker za lcd, usb, sd karticu i par dugmica, dovoljno za testiranje kako to sve radi ... (naravno izlaz svih portova na idc konektorima) tako da tek kada istestiram sve sto me zanima onda cu dalje da vidim da li cu da koristim ili ne ove mcu-e ... a do toga ce proci neko vreme tako da - bootloader radi posao :) ... a za nedaj boze ako smorim bootloader (ne znam da li su ga "zastitili") spucacu ga nazad uz pomoc openocd-a

Citat:
Odin D.:
Zanimljiva informacija. Mozes li nekako doci do izvora tih glasina. Nisam cuo nista slicno, a i zvuci malo nevjerovatno, posto intenzivno izbacuju nove "products line" mikrokontrolere svako malo, a i rekao bih da su im mikrokontroleri medju glavnim proizvodima...


znas kako, covek koji mi je rekao (cita ovaj forum) nije siguran da li je ST u pitanju, tako da, on ako navata siguran info, javice se .. do tada ja na to gledam kao na neproveren info (seti se, skoro smo imali da ce microchip da kupi atmel 1000% pa evo i dalje nista od toga)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 15:41 - pre 165 meseci
video sam atolic, sad vidim kad sam otisao na sajt ... imao sam ga skinutog ali ga jos nisam probao ..

za linux korisnike

- CooCox se instalira pod wine-om i radi 1/1 (sitni bagovi sa CoCenter, morate da nadjete "gde stvarno da kliknete" ali sve radi)
- Keil v4 se instalira pod wine-om, radi 1/1 samo je neophodno staviti projekte na c:, ako ih stavite na neki mapirani disk onda ne radi kako treba (ne mozete da otvorite fajlove za edit)
- Atolic se instalira pod wine-om ali pokusava da starta javu i crkne ko zvecka :( probacu jos par "fora" ali bojim se da od njega nista na linuxu
- gcc se iskompajlira ali mi ne radi nesto kako treba imam:

/home/arhimed/arm-cs-tools/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/bin/ld: cannot find -lc
collect2: ld returned 1 exit status

to sam ja nesto lose uradio ali .. videcemo jos ..


[Ovu poruku je menjao bogdan.kecman dana 03.10.2010. u 17:03 GMT+1]

Prikačeni fajlovi
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 16:20 - pre 165 meseci
Citat:
milanmeh: Pozdrav od jednog zainteresovanog embedded zaludjenika! Zanima me kako ste narucili gore navedenu opremu, JTAG OCD i STM32 header board? Da li je islo preko neke firme ili direkt od olimexa pa postom?


odin nije u srbiji ako se ja dobro secam tako da je njemu lako da narucuje :D ... sto se olimex stvari tice, comet je najbolji nacin za narucivanje, obe su firme bugarske i dobro saradjuju jedna sa drugom tako da kod cometa (www.comet.rs) narucis i stigne vrlo brzo a ne ugrade se mnogo (manje nego sto bi ti postari uzeli za spediciju, pregled, carinjenje etc..)
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 16:21 - pre 165 meseci
Citat:
bogdan.kecman: mada, mislim da cu morati "back to basics" i da procitam prvo datasheet za ovaj mcu, ne znam zasto sam krenuo od C-a umesto da prvo iscitam datasheet


Heh, moram da te razocaram, ali datasheet otprilike dolazi na kraju.
U datasheet-u su opisane samo ST-ove periferije ugradjene u mikrokontroler, a za cpu i periferije koje pripadaju cortexu imas
Cortex-M3 Technical Reference Manual i ARMV7 M Architectural Reference Manual.
Takodje ima i jos poneke "pomocne" literature kao sto je npr. The Definitive Guide to the ARM Cortex-M3, Second Edition koja se tu i tamo moze "krisom pozajmiti"...
Tako da, nekih par iljada strana se tu nagomila koje valja prolistati ako oces da znas "ko pije a ko placa"...
Nemoj samo da se zafrknes pa da to prolistavanje zamjenis studioznim iscitavanjem - potrajalo bi prilicno....
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 16:49 - pre 165 meseci
rade mi ovi primeri, ali ih ne kontam :( ...

dakle .. evo osnovni deo gde sam zapeo:

Code:

int main()
  RCC_Configuration();   
  NVIC_Configuration();
  SysTick_SetReload(9000);
  SysTick_ITConfig(ENABLE);
...


ovako otprilike pocinje svaki primer ...

WTF je systick ?!
na kojoj frekvenciji radi sada ovaj mcu ?!
kristal na ploci je 8MHz .. koji tu pll ide? gde se podesava? postscaler? prescaler? ... koliko mi traje nop?

onda dalje ..

Code:

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;


a sto bas 50MHz ? i sta ovo uopste znaci? da GPIO_WriteBit() traje 1/50M sekundi ili ?

dakle, zabo sam se samo tako .. osecam se ko potpun noob

EDIT: pozajmio sam The Definitive Guide to the ARM Cortex-M3, Second Edition, hvala za hint, deluje cool
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 17:42 - pre 165 meseci
Systick je sistemski tajmer koji je dio cortex jezgra. Sluzi kao standardni timer za generisanje vremena za RTOS-ove ili periodicno okidanje interruptova i tako to gdje god ti zatreba neko "vreme". Naravno, nema veze sa dodatnim tajmerima koji spadaju u periferiju. Ugradjen je u cortex jezgro isto kao npr. i NVIC (nested interrupt vector controler) ili JTAG debug sistem da bi se obezbedila kompatibilnost izmedju svih cortex m3 mikrokontrolera, koji se u praksi onda razlikuju samo po periferijama koje su pojedini proizvodjaci "nalijepili" uz jezgro.
Znaci, da bi se presaltao svoju aplikaciju sa ST-ovog cipa na NXP-ov npr., treba samo da da vodis racuna o peripheral library, sve ostalo ce da radi 1/1, ukljucujuci i hardver za debagiranje i programiranje.
(Skini sa ST-ovog sajta (ili odnekud drugo) "Hitex Insider's guide to the STM32 ARM based microcontroller". To nije velik dokument, a na prvih 20-30 strana imas ukratko opisano o cemu se tu uopste radi sa tim cortex-ima.
Ustvari, probacu ja da ga zakacim ovdje ako bude moglo.)

U principu, malo je zeznuta ta inicijalizacija na pocetku, jer se tu uglavnom petlja po samom cortex-jezgru i onome sto pripada njemu, dok u datasheetu proizvodjaca se uglavnom opisuju periferije koje je proizvodjac zbudzio uz jezgro, tako da datasheet slabo pomaze u odgonetanju onoga sta se tu zbiva.

Ja sam to rjesavao tako sto sam uzeo neki "blinking led" primjer, kompajlirao, u cip usvirao i pokrenuo debugger u step-by-step rezimu i gledao instrukciju po instrukciju sta se tu desava da bi skontao kako se taj cip uopste "pali".
U biblioteci je bilo suma nekih funkcija i kad su u toku inicijalizacije krenule jedna drugu da pozivaju (posredno preko trece i cetvrte...) ja sam se pogubio.
Na kraju, kad iz citave te ujdurme izbacis sve funkcijske pozive i ostavis samo instrukcije koje nesto rade, se sve svede na sacicu nekih read/write instrukcija koje setuju/resetuje neku sacicu bitova za PLL, real-time clock, interrupt, watch-dog i tome slicno, sto je i za ocekivati, ali ljudi izgleda vole da se sve to zapakuje u neke high-level API-je ko da cu na JAVA-i da ga programiram.
I onda pratis te read/write instrukcije i gledas koje flagove kako setuju i otprilike je vrlo lako upratiti kako to ustvari radi. A ako krenes "odozgo" i pocnes da proucavas biblioteke i funkcije ima da se pogubis...

Cortex m3 uvijek startuje sa nekog internog "ovaj covjek je neunistiv"-ocilatora da bi radio i kad sve oko njega na ploci pocrkava. I onda u tom rezimu ti ispodesavas PLL i "prikacis" PLL na spoljni oscilator, pa ukljucis PLL, pa sacekas malo da se zalaufa, pa kad dobijes signal da oscilator fercera, onda switchujes jezgro sa tog internog na PLL koji se pogoni externim itd...

Znaci, ukljuci debugger u step-by-step rezimu i gledaj instrukciju po instrukciju sta radi u procesu inicijalizacije i brzo ces pohvatati kako idu ta inicijalna podesavanja.

EDIT: ne moze upload hitex-ovog uputstva, ima 6MB.
Evo ovdje: http://www.st.com/mcu/files/mcu/1221142709.pdf
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 17:51 - pre 165 meseci
thx za pojasnjenje ... sad cu taman da vidim kako radi openocd+buspirate :D
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 18:09 - pre 165 meseci
Citat:
bogdan.kecman:.

Code:

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;


a sto bas 50MHz ?


Cortex ima nekoliko magistrala na koje se kace periferije, a koje su zajedno sa sistemskim magistralama i visekanalnim DMA kontrolerom spetljane u neku matricu magistrala. Te magistrale se mogu proizvoljno ukljucivati/iskljucivati i mozes im proizvoljno podesavati brzinu bilo zbog ustede struje (low-power modovi) ili cega drugog.
Uglavnom, ako hoces da koristis neku od periferija, prvo treba da ukljucis magistralu na koju je doticna zakacena (jer su po defaultu cini mi se magistrale iskljucene), pa podesis magistralu (brzina), pa ukljucis periferiju (jer su po defaultu cini mi se iskljucene) i eto ....

Sve u svemu, malo se to razlikuje od poznatih 8-bitnih i 16-bitnih kontrolercica, malo je zeznutije u startu, ali i mogucnosti su daleko vece.
Za jednocifrenu cifru dolara 32-bitni CPU na ~90MHz, Harvard arhitektura, koncepti iz "visih" tipova procesora (Supervisor Mode, User Mode, main stack, process stack...), kontroler pristupa memoriji, nested interrupt controler, shadow registri....
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: ARM Cortex M3 - Free Toolchain03.10.2010. u 18:14 - pre 165 meseci
da, deluje mnooogo iskusnije od 32mx pic-a (jedini 32bitni mcu sa kojim sam do sada radio) .. videcemo kako ce ici na dalje .. za sada je prilicno sporo :( .. no .. polako ..
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: ARM Cortex M3 - Free Toolchain15.10.2010. u 11:25 - pre 164 meseci
pazi sad ovo ...

Code:

#define SYSCLK_FREQ_24MHz
int main(void)
{
  SetSysClock(); //setuje sysclk na 24MHz
  RCC_GetClocksFreq(&RCC_ClockFreq);
 
  /* Initialize Leds mounted on STM32VLDISCOVERY board --------------------------*/
  STM32vldiscovery_LEDInit(LED3);
  STM32vldiscovery_LEDInit(LED4);

  /* Output HSE clock on MCO pin ---------------------------------------------*/
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  RCC_MCOConfig(RCC_MCO_HSE);
  
  while (1)
  {
    STM32vldiscovery_LEDToggle(LED3);
    STM32vldiscovery_LEDToggle(LED4);
  }
}

void STM32vldiscovery_LEDToggle(Led_TypeDef Led)
{
  GPIO_PORT[Led]->ODR ^= GPIO_PIN[Led];
}


da je ovo neki PIC koji trci na 24MHz ove ledare bi se palile i gasile na 24/4/2 = 3MHz eventualno mozda na 1.5MHz zavisi kako radim toggle ... elem, ovde ovaj toggle radi na 285.7KHz .. aj sad ako neko moz da objasni ZASTO ?! io bus je na 50MHz, mcu je na 24MHz ... za koji ... zasto 300KHz .. to je 4 puta sporije nego sam ocekivao ?!

 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: ARM Cortex M3 - Free Toolchain15.10.2010. u 12:07 - pre 164 meseci
uh sto sam glup, nista mi nije jasno a mrzi me da citam gigabajte ...

na scopeu se vidi da izmedju

Code:

    STM32vldiscovery_LEDToggle(LED3);


i

Code:

    STM32vldiscovery_LEDToggle(LED4);


prodje 940ns

ne kontam ... nemoguce da je toliko sporo menjanje stana pina

Prikačeni fajlovi
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: ARM Cortex M3 - Free Toolchain

Strane: 1 2 3

[ Pregleda: 16423 | Odgovora: 51 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.