Jodå! Jag kör mest TI:s Stellaris cortex-m3 ihop med GCC/Eclipse/OpenOCD och det funkar klockrent! Inte speciellt krångligt att få o funka och det fina är att TI har mycket bra kodexempel i sin stellarisware. Dessutom finns billiga dev-kit som dessutom kan användas som programmerare för sina egna kort (typ 600 spänn). Ytmontera är ett måste, men är inte så svårt om man har varmluft eller en bra station.
Är duktigt sugen på att testa TI:s cortex-m4, är fina spec. på den Någon som vet om det funkar ihop med OpenOCD?
Här är det också Cortex-M3 som gäller! Jag kör STM32, utvecklar i Eclipse och kompilerar med GCC/GDB (CodeSourcery) under OpenSuSE. JTAG körs via OpenOCD och en Olimex ARM-USB-TINY-H. Jag är mycket nöjd med STM32:orna så här långt.
STM32F103 eller STM32F107 är numera min standardkretsar om jag ska välja någon "godtycklig" processor. Senaste tillskottet i lekhögen är för övrigt utvecklingskortet STM32F4-DISCOVERY (STM32F407) som ju har en Cortex-M4 på sig
Nackdelen med de Cortex-baserade processorerna (i allmänhet, inte bara STM32) jämfört med t.ex. PIC och AVR måste nog vara tröskeln att komma igång med programmeringen (iaf att förstå vad som händer under skalet). Cortex-baserade chip tenderar att vara rätt kompetenta och därmed också rätt komplexa. T.ex. så är referensmanualen till STM32:ornas periferienheter på över 1000 sidor - och den skulle lätt kunna vara längre...
Jag kör IAR på jobbet funkar mycket bra, på fritiden har jag prövat MBED som är ett kort med Cortex M3 och de flesta pinnarna bekvämt framdragna. Kompilatorn ligger på nätet så det går att köra i stort sett på alla miljöer, har funkat ganska bra debugningen blir dock av den gamla typen med spårutskrifter via serieport eller blinkningar med fina blå dioder.
Det finns ett ganska aktivt forum också med många exempel som folk frikostigt släpper ifrån sig.
Tackar för all information. Ju mer jag läser desto mer undrar jag varför jag fortfarande sitter med PIC. Enda fördelen verkar vara kapseln.
Det som bekymrar mig lite är alla kretstillverkare. Hur funkar det? Är kod kompatibel mellan de olika tilverkarna?
@jesper säger att kompilator är GCC men de flesta utvecklingskorten verkar ha något eget bös. Skulle det alltså gå att flasha de "på riktigt" med binärer från GCC istället?
Om man väljer en kretstillverkare i början, hur besvärligt blir det då att byta?
Även om processorn är samma - Cortex-M3 från ARM - i alla chip så är det upp till kretstillverkaren att välja till lämpliga "periferienheter", såsom UART, SPI, DMA, Ethernet, etc. Tillverkarna kan även i viss utsträckning välja vilka funktioner som tas med i Cortex:en, t.ex. minnesskydd eller olika typer av interrupthanterare, men det mesta är det samma oavsett kretstillverkare.
Normalt sett sätter en tillverkare in samma periferienheter i olika modeller av processorn, även om vilka periferienheter som finns med varierar. Det är därför oftast relativt lätt att porta en mjukvara från säg STM32F103 till STM32F107 då samma USART:ar, SPI-block, etc. används. Det man då måste ta hand om är skillnaderna som t.ex. att 103:an har SDIO medan 107:an har Ethernet. Tillkommande periferienheter är i regel inte ett problem utan bara de som försvinner eller ändras/byts ut mellan modellerna.
Olika tillverkare väljer sina egna periferienheter, antingen konstruerar dom själva eller så köper dom in färdiga block och integrerar (precis som ARM Cortex-M3 är ett inköpt och integrerat block). Det innebär i praktiken att inget eller i alla fall mycket lite av den hårdvarunära koden går att porta mellan olika tillverkare utan ganska stor smärta... Bara för exemplifiera så kollade jag lite snabbt på den USART som finns i STM32:orna och jämförde med den som finns i TI Stellaris LM3S3J26 och dom är verkligen helt olika från programmerarens perspektiv...
I min värld, tycker jag att periferin är lite onödigt komplicerad i STM32. Det verkar som om ST tycker det också. Deras bibliotek är, för att travestera Maud Olofsson, sådär.
Många buggar är det. Errata för STM32F105 har 4 sidor om I2C. Hur svårt kan det vara?
Är periferin komplicerad så får man väl vara tacksam att den är någorlunda väl dokumenterad. Men man ska vara medveten om att det ligger på en helt annan nivå än AVR/PIC.
Min åsikt är att ARM Cortex-M3 är ca tre ggr mer komplicerad och tar tre gånger
längre tid att komma igång med än AVR. Men också tre gånger mer kompetent.
Väl igång är det nog två-tre gånger lättare att lösa en komplicerad uppgift med Cortex-M3.
Den stora fördelen med AVR ur mitt amatörperspektiv är att den finns i DIL-kapsel.
Lite förvånande kan det tyckas att jag inte hittar någon riktigt, riktigt, riktigt billig modul med processor, avkoppling och kristall på. Finns kanske ingen marknad för det, eller så är den marknad som finns så besvärlig att ha att göra med så ingen är intresserad av att sälja en sådan modul. Kanske kan vara ett grupparbete för hugade spekulanter?
Jag gissar att volymmässigt är dessa 32-bitars "mikrokontrollers" fortfarande
väldigt mycket mindre än de vanliga 8-bitars AVR/PIC (t.ex). Storleken på
den potentiella marknaden styr till stor del utbudet av prylar och firmor
som t.ex Olimex är sannolikt ganska bra på ett bedöma "marknaden".