Vraag:
ARM Cortex-M3-ontwikkeltools?
mba7
2009-12-11 23:19:49 UTC
view on stackexchange narkive permalink

Ik ben van plan om te migreren naar de NXP Cortex M3-architectuur en ik ben een beetje verdwaald tussen de bestaande ontwikkeltools.

Keil is duur en ik weet niet of het het waard is. heeft geprobeerd een of andere compiler enig advies te geven?

Ik vond deze compiler http://www.code-red-tech.com/red-suite-2.php zo lijkt het goed en niet duur. Iedereen die het heeft geprobeerd of ervan weet, kan mij meer informatie geven?

Het is de compiler die bij de LPCXpresso-kaarten wordt geleverd en gebruikt gcc met de Eclipse IDE. De tools van Rowley CrossWorks zijn veel beter.
Op welke manier zijn ze beter? Ik vraag het omdat ik het LPCXpresso-bord heb en de tools lijken goed te werken, dus ik vraag me af hoe de andere tools beter zijn?
Kunnen we er geen CW van maken?
De meeste mogelijkheden moeten in 2012 worden heroverwogen, aangezien Microsoft Visual Studio 2012 ARM ondersteunt als eerste klas doelwit.
Voor kleine projecten is de proefversie van de Keil-compiler gratis.
Dertien antwoorden:
#1
+17
Andrew
2009-12-14 05:05:53 UTC
view on stackexchange narkive permalink

Ik speel de laatste tijd in mijn vrije tijd met een STM32 (ook Cortex M3) en gebruik de CodeSourcery-distributie van GCC, wat redelijk goed is gelukt.

Een collega die met ARM-micro's heeft gewerkt professioneel vertelde me in het verleden dat hij tevreden was met de IAR-toolchain, hoewel ik niet weet wat de kosten zijn of hoe de Cortex-ondersteuning is.

IAR is een bedrijf dat gespecialiseerd is in compilers voor zover ik weet. Ik gebruik ze op het werk en ze hebben een aantal voordelen en een paar nadelen. Ik vind hun ondersteuning echter best uitstekend, we gebruiken de MSP430, maar ze lijken elke processor te dekken die ik opzoek.
#2
+16
Toby Jaffey
2010-07-02 05:06:32 UTC
view on stackexchange narkive permalink

Ik gebruik de CodeSourcery (Lite) cross-compilers voor Linux om de TI Stellaris Microcontrollers te programmeren. Ze werken met elke Cortex-M3. Ze zijn volledig gratis, met binaire bestanden voor Windows en Linux.

Hier is een kort recept (Debian / Ubuntu) om te installeren:

Download de toolchain ( elke versie zal het doen, maar ik gebruik deze)

Java Runtime Environment installeren (voor het verdomde installatieprogramma)

  sudo apt-get install sun-java6-jre ia32- libs  

Installeren

  chmod 755 arm-2009q3-68-arm-none-eabi.bin./arm-2009q3-68-arm-none- eabi.bin -i console  

Voeg cross-compiler bin-map toe aan uw PATH

  echo 'export PATH = $ PATH: ~ / CodeSourcery / Sourcery_G ++ _Lite / bin / '>> ~ / .bashrc. ~ / .bashrc 

Om code te laden en debuggen, heb je OpenOCD en ofwel gdb of een van de GUI's nodig.

Jij heb ook een JTAG-adapter nodig.

Ik gebruik ook de CodeSourcery-tools in een van mijn lessen, met de Stellaris LM-3s6965 dev-kit. Onze wiki (link naar toolchain) is hier: http://claymore.engineer.gvsu.edu/egr326/LM3S6965#Toolchain:_Windows_and_Linux (Zie ook de MacOS X installatie-instructies hieronder.) De kit wordt geleverd met een tijdelijke demo van hun GUI-tools, maar de opdrachtregelprogramma's zijn niet beperkt.
#3
+9
ttt
2010-03-14 05:19:23 UTC
view on stackexchange narkive permalink

Ik ben een van deze gaan gebruiken (MBED-ontwikkelaarsbord). De grote verkoopargumenten voor mij waren dat ik kon coderen in C of C ++, een eenvoudige verbinding met USB en een gelikte online ontwikkelomgeving (helemaal geen installatie van lokale tools nodig!).

http : //mbed.org/

Vijf minuten na het openen van de box had ik een voorbeeld van een blinky programma (de 'hallo wereld' van de geëmedeerde wereld) met het volgende:

  #include "mbed.h" DigitalOut myled (LED1); int main () {while (1) {myled = 1; wacht (0.2); myled = 0; wacht (0.2); }}  

Dat is alles! Hierboven staat het complete programma!

Het is gebaseerd op ARM Cortex M3, snel en voldoende geheugen voor embedded projecten (100 MHz, 256 k flash & 32 k ram). De online dev-tools hebben een zeer goede bibliotheek en veel voorbeelden en er is een zeer actief forum. Veel hulp bij het verbinden van apparaten met MBED enz.

Hoewel ik veel ervaring heb met embedded systemen (ARM 7/9, Renases M8 / 16/32, Coldfire, Zilog, PIC enz.), Vond ik dit toch een verfrissend eenvoudig systeem om onder de knie te krijgen terwijl het over serieuze mogelijkheden beschikt.

Nadat ik er aanvankelijk mee had gespeeld op een standaard breadboard, kocht ik een basisbord van deze jongens: http: //www.embeddedartists. com / producten / lpcxpresso / xpr_base.php? PHPSESSID = lj20urpsh9isa0c8ddcfmmn207. Dit heeft een stapel I / O-apparaten (waaronder een miniatuur OLED en een versnellingsmeter met 3 assen). Van dezelfde site heb ik ook een van de LCPExpresso-processorkaarten gekocht, die goedkoop is, minder stroom / geheugen dan de MBED, maar perfect voor kleinere klussen (nog steeds de rotzooi van PIC / Atmega-processors). Het basisbord ondersteunt zowel de LCPExpresso als de MBED. Bij de aanschaf van het LCPExpress-processorbord kreeg ik ook een aangesloten JTAG-debugger en een offline ontwikkelomgeving (op Code Red's op GCC / Eclipse gebaseerde ontwikkelkit). Dit is veel complexer dan de online MBED-ontwikkelomgeving, maar het is een logische progressie nadat je ervaring hebt opgedaan met de MBED.

Met verwijzing naar mijn oorspronkelijke punt noite dat de MBED-controller veel capabeler is dan de LPCExpresso-controller, MAAR veel eenvoudiger te gebruiken en te leren is.

Er is ook Adam Green's uitstekende gcc4mbed-project waarmee je offline kunt compileren (ten koste van grotere codegrootte): https://github.com/adamgreen/gcc4mbed
#4
+9
old_timer
2010-07-20 05:32:17 UTC
view on stackexchange narkive permalink

code sourcery lite is goed, of gebruik emdebian. of rol je eigen, het is vrij eenvoudig, tenzij je een volledige C- of gcc-bibliotheek nodig hebt, dan is het nog steeds te doen, maar een beetje moeilijker. in het begin heb je geen compiler nodig die thumb2 ondersteunt, thumb zal doen wat je zoekt naar een toolchain die je leuk vindt.

llvm is een andere goede (gebruik clang niet llvm-gcc !!), ik weet dat de arm-kant steeds beter wordt, versie 27 produceerde snellere code dan de huidige gcc voor een bepaalde test. Ik vond een bug in de duimzijde bij het werken aan mijn duimemulator (thumbulator.blogspot.com) die onmiddellijk werd verholpen. Het beste van llvm is dat het standaard een cross-compiler is, geen extra werk of bouwervaring vereist. In de komende jaren zie ik ze dieper in gcc snijden en gcc passeren voor cross compiling / embedded.

Ik heb de code-red tool een keer geprobeerd met het lpcxpresso-bord, het eindresultaat is dat ik het zeker ben gebruik nooit code-rood en ben aan het discussiëren of lpc ook op de zwarte lijst moet staan. ymmv. Als je een betaalde tool moet gebruiken, zou ik alleen met keil gaan omdat ze met de arm zijn gekocht en een deel van het pakket de rvct-compiler is. Natuurlijk is code sourcery ook een betaalmiddel als je niet aan de lite-beperkingen voldoet of ervoor kiest om ondersteuning te krijgen, aangezien het gcc is, heeft het verreweg de beste ondersteuning van alle compilers. Niet lang geleden, toen ik ze kon uitproberen, bliezen metaware en arm's tools gcc weg wat betreft de kwaliteit van de geproduceerde code. gcc is op en neer, sommige versies van 3.x produceren betere code dan 4.x, ze lijken niet te verbeteren bij elke release, maar ze hebben niet zo lang geleden ondersteuning voor thumb2 toegevoegd, wat de 3.x-versies niet doen / zal niet hebben.

'Als je een tool moet betalen, zou ik alleen met keil gaan omdat ze met de arm zijn gekocht' - Heb je de Keil-compilers geprobeerd? Ik ben in ieder geval niet onder de indruk van de Keil 8051-tools. Ze voelen zich dinosauriërs in vergelijking met op GCC gebaseerde competitie of de LLVM / Clang-suite, IMHO.
#5
+8
Leon Heller
2009-12-18 01:26:04 UTC
view on stackexchange narkive permalink

Ik gebruik Rowley-software voor de ontwikkeling van ARM en MSP430:

http://www.rowley.co.uk

Het is uitstekend. Cortex-M3 wordt ondersteund.

ik probeer de proefversie en ik denk dat het mijn keuze zal zijn. het is compleet goed gedocumenteerd en niet erg duur (persoonlijke licentie voor 150 $)
De Rowley-toolset is geweldig en de ondersteuning is uitstekend.
#6
+7
stbtra
2010-12-01 04:49:23 UTC
view on stackexchange narkive permalink

Ik gebruik Yagarto + Eclipse + J-link edu debugger. (Gnu toolchain)

http://www.yagarto.de/

#7
+5
Nate
2010-07-02 04:37:26 UTC
view on stackexchange narkive permalink

Ik heb redelijk veel succes gehad met het gebruik van IAR -compiler- / debug-ketens voor mijn ARM-ontwikkeling. Ze bieden relatief stabiele ontwikkeltools, compleet met een Embedded C ++ -omgeving (wat enigszins zeldzaam lijkt). - Afhankelijk van de grootte van je codebase, bieden ze ook geweldige hardware / software "KickStart Kits" met beperkte versies van hun tools in codegrootte.

#8
+4
mikeselectricstuff
2010-12-01 05:23:48 UTC
view on stackexchange narkive permalink

IAR is uitstekend, en als je kleine projecten doet, is er een gratis beperkte kickstarteditie van 32K codegrootte. Grootte-upgrades zijn echter een beetje duur denk ik. Ze komen ook met tal van goede voorbeeldprojecten, meestal meerdere voor elke processorfamilie.

Ja, ze hebben veel op mijn school gekort, het was nog steeds in de duizenden na een prijsverlaging van 95%.
#9
+4
nemik
2011-06-29 01:56:32 UTC
view on stackexchange narkive permalink

Ik ben de afgelopen dagen bezig geweest om de CodeSourcery GNU-toolchain volledig in te stellen voor de EFM32G micro op OS X. Het was het waard. Vergeleken met veel van de GUI-gebaseerde debuggers die ik heb geprobeerd (meestal Eclipse-gebaseerd); Makefiles, GCC en GDB zijn een droom die uitkomt; plus het werkt allemaal vanaf mijn Linux- of Mac-terminal.

Het enige dat waardeloos is, is de J-Link-adapter die in het bord is ingebouwd. Het Windows- en Linux GDBServer-programma van J-Link is een gesloten bron. Erger nog, de Linux-versie loopt VEEL verder achter. Dus om GDB te laten werken, moet ik een Windows VMWare-image draaien waarvan het enige doel is om de GDBServer uit te voeren (omdat de Linux-server kapot is).

Oh en bovendien werkt J -Link's op Linux gebaseerde GDB-server bindt aan 127.0.0.1 en luistert ALLEEN naar pakketten met dat als bestemming; dus knoeien met iptables en doorsturen is nodig om het verbinding te laten maken vanaf een externe machine. Belachelijk; Segger moet hun zaakjes op orde krijgen.

Ik ben het ermee eens dat jlink een koninklijke pijn is op Linux, maar ik denk dat je het kunt laten werken met LD_LIBRARY_PATH. U kunt ook het probleem met het bindende adres oplossen door een SSH-forward te gebruiken, of door LD_PRELOAD of iets dergelijks te gebruiken om de netwerkoproepen te verpakken en het netwerkadres te wijzigen. Maar het is zielig als tools die duur zijn moeilijker zijn om mee te werken dan goedkope tools zoals ST-LINK waarvoor volledig open stuurprogramma's reverse-engineered zijn.
#10
+4
Timmmm
2014-06-12 16:26:52 UTC
view on stackexchange narkive permalink

Ik gebruik QtCreator en GNU Tools ARM Embedded. Werkt goed.

Voordelen:

  • Volledig gratis (en open source)
  • QtCreator is een geweldige moderne C ++ IDE met werkende code-aanvulling, symbool-hyperlinks , refactoring, etc.
  • QtCreator ondersteunt bare metal debugging (ja - je kunt grafisch breekpunten plaatsen, code stapsgewijs en variabelen inspecteren). (Vereist een JTAG- of SWD-link naar uw MCU, maar dit was lang niet zo moeilijk als ik dacht.)
  • Niet op Eclipse of Eclipse gebaseerd.

Nadelen:

  • Baremetal-ondersteuning is erg nieuw en ik had er nogal wat problemen mee - uiteindelijk te verhelpen met de uitstekende hulp van de auteur op de QtCreator-mailinglijst.
  • Misschien een beetje moeilijker in te stellen dan Keil of code rood.

Als alles correct is ingesteld, kan ik klikken om een ​​breekpunt in mijn code te maken, en dan op de "debug" knop klikken. Het zal compileren, flashen, uitvoeren en pauzeren op het breekpunt in ongeveer 5 seconden (en je tegelijkertijd woedend maken als je ooit terug moet naar de Arduino "IDE").

Ik werk aan een tutorial voor het instellen van dit met een andere ARM-chip - de op Cortex-M0 gebaseerde nRF51822.

Het is waarschijnlijk de moeite waard om wat meer details toe te voegen over wat je leuk vindt, een paar goede functies enz. Om het antwoord nuttiger te maken.
Kunt u een ruwe schets geven?
#11
+2
BobEmbed
2011-06-24 13:07:08 UTC
view on stackexchange narkive permalink

Ik gebruik CooCox-tools, het is uitstekend maar gratis te gebruiken, zonder enige codegrootte. http://www.coocox.org/

#12
+1
Chintalagiri Shashank
2013-01-27 01:30:24 UTC
view on stackexchange narkive permalink

Ik gebruik arm-eabi-gcc en de bijbehorende toolchain geïnstalleerd via het summon arm toolchain-script. Het script stelt de omgeving in voor het uitvoeren van bare metal-werkzaamheden op de ARM. Het is gratis en open source en zo, en heeft voor mij betrouwbaar gewerkt. Ik heb hiervoor ook IAR gebruikt, en het is zeker beter omdat je hiermee veel vriendelijker kunt debuggen en dingen op de IDE-manier kunt doen, maar over het algemeen voel ik me meer op mijn gemak bij gcc, al was het maar omdat ik hoeft de kosten voor niemand te rechtvaardigen.

(Ik heb nooit echt bedacht hoe ik gdb ergens voor moet gebruiken, maar ik ben er nooit echt aan gewend om een ​​debugger te gebruiken of er toch een beschikbaar te hebben, dus ik weet niet zeker of ik gekwalificeerd ben om oordeel dat beetje.)

#13
+1
ITguy
2013-07-03 06:08:42 UTC
view on stackexchange narkive permalink

Ik gebruik Emprog ThunderBench. Het is uitstekend, waarschijnlijk de beste die ik ooit heb gebruikt.

Wat ik er het leukst aan vind, is dat het tegelijkertijd een C / C ++ ARM cortex-compiler is, een debugger en een IDE.

Ziet eruit als weer een andere GCC + Eclipse-combinatie.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 2.0-licentie waaronder het wordt gedistribueerd.
Loading...