Sida 1 av 2

Förslag på toolchain till Cortex M3 (STM32)

Postat: 6 maj 2010, 10:55:15
av JmD
Jag har fastnat för Cortex M3-baserade lösningar för kommande MCU-projekt. Däremot har jag inte bestämt mig än för vilka verktyg (toolchain) jag ska använda. Jag har luktat på OpenOCD men inte kommit igång med den. Jag har också tittat på CrossWorks från Rawley. CrossWorks verkar betydligt enklare att komma igång med. Men jag såg i något inlägg att någon talade om fördelarna med att använda en mer "neutral" toolchain som OpenOCD. Åsikter och tips om vad jag ska tänka på, för- och nackdelar med olika toolchains osv mottages tacksamt.

Man kan fråga sig varför jag valt en omständig 32-bitars MCU istället för en PIC, AVR eller liknande. Min tanke är att lära mig en MCU och använda den till i princip alla mina projekt. Hellre då att den är aningen overkill till de enklare projekten än att jag ska ha olika MCU:er beroende på vad jag ska göra. Jag inbillar mig att det i längden gör det lättare för mig som utvecklare att använda en lösningsbas.

Min hårdvara är:
MCU (på brekaout board) - STM32-H103 från Olimex (http://www.olimex.com/dev/stm32-h103.html)
OCD (USB till JTAG) - ARM-USB-OCD från Olimex (http://www.olimex.com/dev/arm-usb-ocd.html)

Tack på förhand
///JmD

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 6 maj 2010, 20:28:31
av PeSve
Hej!

OpenOCD är inte någon toolchain.
Den används för debugging och programladdning, men ger dig inte kompilator, länkare mm.

Jag använder den, tillsammans med CodeSourcerys Sourcery G++ lite edition(gcc-baserat) då jag ville ha en miljö som var gratis och inte hade
några konstgjorda gränser inbyggda. (Vilket testversioner brukar ha.)
Visst, Sourcery G++ lite är begränsad på så sätt att den är kommandoradsbaserad, men går att använda med Eclipse om man vill ha ett grafiskt användargrässnitt.
Det är dock endel plock med att få till det.

Jag tror att du finner mycket matnyttigt i den här tråden:
http://elektronikforumet.com/forum/view ... =7&t=41676

Ditt JTAG-interface verkar stödjas av OpenOCD, men hur är det med Crossworks?

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 7 maj 2010, 00:28:53
av jesper
Kan rekommendera CodeSourcery och Eclipse.
Funkar bra att köra ditt Olimex JTAG med OCH och GDB i denna miljö.
Som PeSve säger, kan det dock bli lite pillande innnan det är uppe och kör. Det kan dock vara värt det, då Eclipse är en utomordentlig bra miljö att jobba i. Det går att integrera i stor sett allt, versionskontrollverktyg som SVN, CVS eller GIT, dokumentationsverktyg som Doxygen och mycket mer. Och - allt är gratis (utom din tid, förstås).
Och du kan med fördel använda samma miljö för all annan utveckling som användar GCC, t.ex för AVR.

Jag har jobbat med i stort sett alla större ARM7 fabrikat som finns, och är mycket imponerat av ST's version.
Bra periferi, bra urval av kretsar och bra pris.
Använde tidigare AVR, men nästan inte längre, det är billiga och enklare att använda en ARM7 istället. Skal man köra ett projekt med 10k-100k+ enheter, kan det fortfarande vara värt spara någon krona på hårdvaran, men är det lite komplexitet betaler sig ARM'en oftast i en kortare utvecklingstid.

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 7 maj 2010, 02:47:36
av JmD
Hejsan!

PeSve -Mea Culpa - naturligtvis är OpenOCD inte en komplett toolchain. Tänkte mer på OpenOCD + Eclipse + GCC osv. Som sagt - mitt misstag.

I övrigt - tackar för förslagen. Sourcerys G++ har jag sett och är nyfiken på.

Det verkar som en "generell open source"-trend pekar mot eclipse, GCC samt OpenOCD i någon kombination. Mitt problem är att jag är riktigt kass på dessa mjukvaror så det lär ta en bra stund innan jag lärt mig vad som finns samt fått in någon känsla för vad jag skulle vilja använda.

Fortsatta förslag och åsikter mottages tacksamt.

///JmD

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 7 maj 2010, 03:54:58
av blueint
En faktor som kan vara värt att tänka på är energiförbrukning. Speciellt då om det ska drivas med batteri.
Fler transistorer = mer watt.

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 7 maj 2010, 09:01:48
av JmD
blueint - det är sant. Å andra sidan har jag redan gått igenom processen att välja hårdvara - och Cortex M3 är arkitekturen jag fastnade för. Mest för dess prestanda men också för den måttliga effektförbrukningen och goda tillgången på IO-enheter, DAC:ar osv hos de kretsar som finns. Nu handlar det om att hitta en bra uppsättning verktyg för att programmera.


///JmD

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 7 maj 2010, 17:56:02
av JmD
Jag har laddat hem CrossWorks från Rowley (http://www.rowley.co.uk/index.htm). De har en gratis 30-dagars utvärderingslicens, och även en Personal License för 150 $. Jag ska utvärdera den och se vad jag tycker. Den var väldigt lätt att komma igång med, och det finns stöd för min OCD. Så nu är det bara att läsa in sig på STM32, C och börja testa.

///JmD

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 9 maj 2010, 20:16:17
av danwi
Jag skulle också rekommendera att köra CodeSourcery-toolchain med OpenOCD. Det var ganska smutt att få igång alltihop för att köra mot STM32.

Vi har även kört CodeSourcery G++ (dock inte med OpenOCD) mot ARM9 (AT91SAM9260) och även det funkar kanon!

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 9 maj 2010, 23:06:17
av lizerdboy
JmD: Jag är på samma spår som dig, ska testa CrossWorks först och sedan försöka få igång CodeSourcery just för att känna på och se vad som faller en i smaken.
värsta är bara att det utvecklingskortet som jag köpte från kina så kör dom enbart Keil exempel kod.
de går juh att porta. men de hade vart trevligt med samma, men man ska inte gå efter vad exempel koden är skriven i =)

JmD:
Har du kört någon microcontroller innan ?? jag tänker äldre, ist förnyare familjer från avr,pic osv, tänkte på det du skrev i första inlägget.
såg du tråden http://elektronikforumet.com/forum/view ... 0&start=15
har vart i samma funderingar så att säga

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 10 maj 2010, 09:59:03
av JmD
danwi:
Jag har tittat på CodeSourcery-alternativet. Problemet är att ju mer jag läser in mig på Cortex M3, desto mer inser jag värdet av det som är "gjort och fixat" i en kommersiell toolchain som CrossWorks. Jag har inte jobbat med MCU:er tidigare (även om jag gjort en hel del hårdvarunära programmering i servoförstärkare och annat) och jag har inte heller programmerat i C (C# är mitt "huvudspråk"). Jag har alltså flera områden där jag måste läsa in mig redan nu. Att bygga en toolchain dessutom känns just nu inte som ett alternativ. Kanske senare när jag blivit varmare i kläderna. Men förslaget uppskattas - tackar.

lizerdboy:
Nej, jag har inte använt MCU:er tidigare. Men lite elektronikbyggen och programmering av servoförstärkare, PLC:er osv har väl get mig en och annan erfarenhet av närområden iaf. Just nu läser jag C, två olika guider och insights till Cortex M3 samt sätter mig successivt in i CrossWorks. Dessutom kollar jag på programexempel för STM32. Så det snurrar friskt i den här gamla skallen för tillfället. Men jag håller gärna kontakten - alltid jkul och intressant med människor i liknande situation. Vi kanske kan dela erfarenheter under resans gång?

///JmD

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 10 maj 2010, 19:53:02
av lizerdboy
Jmd:
De låter förträffligt att du har C# som bas, de e väldigt likt på många sätt och bra grund. Har programmerat för AVR med gcc o PICmed assembler i ganska många år nu.
och har också C# som utvecklingsbas som jag gör de mesta med på pc sidan.
och först nu när man börjar inse att dom inte räcker till för dom projekt man tänker på så har jag vart sugen på att gå upp ett större steg o fastna riktigt bra med SM32 serien. Har du inte hunnit med så mycket då man pluggar, en månad till sedan kommer jag ge järnet då jag har ett spännande idee som jag har sugit på ett bra tag.
Absolut, är alltid kul med personer med samma intresse, och speciellt nu när du börjat köra stm32 :D bor i stockholm, själv då ??
lite nyfiken på vad du har tänkt använda den till. eller är det företagshemligheter ?? :D

insights till Cortex M3 vilken bok är det?? något bra ??
kan vara intresserad jag med.

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 10 maj 2010, 21:06:06
av danwi
Nja, bygga en toolchain behöver du inte. CodeSourcery G++ är redan färdig - bara att packa upp och börja kompilera din kod! Det som däremot skulle kunna vara lite bökigt kan vara OpenOCD. Jag fick iofs OpenOCD att lira på första försöket med Raisonance RLink-laddkabel (sån som t.ex. finns integrerad på STM32 Primer 1/2) men det kan böka lite om man har otur.

Det som man får med en förpackad verktygsuppsättning (förutom den normalt sett usla editorn :roll:) är att byggscript/makefiler, länkscript, osv dyker upp lite smått automagiskt. Efter ett antal år av kodknackande för alla möjliga arkitekturer har jag kommit fram till att lättillgängliga standardverktyg nästan alltid spöar köpeprylar i längden... Lite knöligare på kort sikt, mycket enklare på lång sikt! På jobbet har vi nästan uteslutande övergett specialverktyg (t.ex. IAR/Raisonance/etc.) till förmån för GCC-baserat på alla arkitekturer där det går!

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 10 maj 2010, 21:11:18
av PeSve
Insiders guide ... är sannolikt denna.

http://www.st.com/mcdfiles/1221142709.pdf

Den är bra, speciellt i början när man behöver få en överblick.

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 10 maj 2010, 22:39:06
av JmD
lizerdboy:
Jo, att c# och c är besläktade syns rätt snabbt. Pekare har jag använt en del även i c# så det är inte helt obekant. Det största är väl att gå över från objektorienterat till procedurellt. Det största "användningsområdet" är att jag vill ha en bas för embedded-lösningar - en plattform för alla projekt snarare än att leta efter en ny MCU för varje lösning. Rent konkret så finns det ett par projekt som ligger och väntar. Dels servomotorstyrning - de flesta servoförstärkare jag jobbat med kostar en slant och har samtidigt ganska begränsade uppsättningar med in- och utgångar i förhållande till priserna. ST har ju dessutom ett färdigt kodbibliotek som innehåller ett par PID-lösningar. PID:ar används ofta för servoreglering så det är välkommet med en färdiggjord kodbas inom området. PID:arna finns i ST:s DSP-bibliotek för STM32:an. Med en bra lösning på effektsidan (drivelektroniken som ska förse motorn med ström) så ser jag Cortex M3 som en utmärkt MCU för sådana projekt.
Sedan har jag ett pågående projekt där en STM32 ska pulsa en IR-laser, läsa av lite accellerometrar och sen snacka trådlöst med en PC. Det ingår som e del av hårdvarulösningen i ett större projekt där jag utvecklar mjukvaran för PC:n i just c#. Det är en mycket grafikintensiv applikation med mycket 3D och utnyttjande av parallella processer. Och där behöver vi en flexibel embedded-lösning för att kunna utveckla just hårdvarubiten som till vissa delar kommer att vara batteridriven och kommunicera trådlöst med huvuddatorn.

Det jag läser om STM32 är dels "Insiders guide to STM32" från HITEX samt "The Definitive Guide To the ARM Cortex M3, second edition" av Josepoh Yiu. Plus naturligtvis referensmaterial, specifikationsblad mm mm.

Jag bor i Tyresö utanför Stockholm så då är vi "grannar".

danwi:
Eftersom jag är total noob i MCU-världen så är det de där bitarna (byggscript/länkfiler mm mm) samt just att få OCD:n att lira som avskräcker mig från en Open Source-lösning just nu. Med CrossWorks, uVision m.fl så slipper jag den biten. Men i förlängningen så tror även jag på din lösning. Skönt att inte vara beroende av en leverantörs produkter för att få jobbet gjort. Samt att kostnadsbilden ju är klart tilltalande :-)

Vad gäller editorer - jag har jobbat lite i eclipsbaserade verktyg (Flex Builder) och eclipse med alla pluggar osv verkar ett trevligt ramverk. Det jag inte gillar är att det är Java-baserat, och åtminstone Flex Builder sög så fett med systemresurser att jag inte trodde mina ögon. Har man som jag jobbat i Visual Studio så blir man väldigt bortskämd vad gäller editorn. Så jag inser att jag får leva med sämre varianter nästan oavsett vilken verktygsuppsättning jag väljer på MCU-programmerar-sidan. Vilken editor använder du/ni i era projekt?


///JmD

Re: Förslag på toolchain till Cortex M3 (STM32)

Postat: 10 maj 2010, 23:34:56
av lizerdboy
slänger in en snabb kommentar =)

har precis använt lego mindstorms kit med en atmel 32bitars processor för att bygga en segway, sitter och skriver på Poster och presentation "as a speak"
länka över blåtand och styrning med eget program i C# med PID loggning i realtid osv, tillomed bättre än vad doktoranderna fick fram :D
så man kan säga att jag har syslat med typ av servo och massa pid reglering.
så jag är riktigt sugen att börja på egna cortexM3 projekt.

Tyresö, nice , min farsa bor där ute i lyckeby.

yees yees har lite väl mycket att jobbavidare på innan man får sova. så måste hålla mig kort.
men de du nämner verkar väldigt intressant.

//Micke