Ich habe vor, auf die NXP Cortex M3-Architektur umzusteigen, und bin ein wenig verloren zwischen den vorhandenen Entwicklungstools.
Keil ist teuer und ich weiß nicht, ob es sich lohnt. Jeder, der einen Compiler ausprobiert hat, kann einen Rat geben?
Ich fand diesen Compiler http://www.code-red-tech.com/red-suite-2.php es scheint gut und nicht teuer. Jeder, der es ausprobiert hat oder davon weiß, kann mir weitere Informationen geben?
Antworten:
Ich habe in meiner Freizeit in letzter Zeit mit einem STM32 (auch Cortex M3) gespielt und die CodeSourcery-Distribution von GCC verwendet, was ziemlich gut geklappt hat.
Ein Kollege, der in der Vergangenheit professionell mit ARM micros gearbeitet hat, sagte mir, dass er mit der IAR-Toolchain zufrieden sei, obwohl ich nicht weiß, wie hoch die Kosten sind und wie der Cortex-Support ist.
quelle
Ich verwende die CodeSourcery (Lite) -Cross-Compiler für Linux, um die TI Stellaris-Mikrocontroller zu programmieren . Sie arbeiten mit jedem Cortex-M3. Sie sind komplett kostenlos und enthalten Binärdateien für Windows und Linux.
Hier ist ein kurzes Rezept (Debian / Ubuntu) zum Installieren:
Lade die Toolchain herunter (jede Version reicht aus, aber ich benutze diese)
Installieren Sie Java Runtime Environment (für das verdammte Installationsprogramm)
Installieren
Fügen Sie Ihrem PATH das Verzeichnis cross compiler bin hinzu
Um Code zu laden und zu debuggen, benötigen Sie OpenOCD und entweder gdb oder eine der GUIs.
Sie benötigen außerdem einen JTAG-Adapter .
quelle
Ich habe damit begonnen, eines davon zu verwenden (MBED Developer Board). Die großen Verkaufsargumente für mich waren, dass ich in C oder C ++ programmieren konnte, eine einfache Verbindung über USB und eine übersichtliche Online-Entwicklungsumgebung (überhaupt keine lokale Tool-Installation erforderlich!).
http://mbed.org/
Fünf Minuten nach dem Öffnen der Box hatte ich ein Beispiel für ein Blinky-Programm (die "Hallo-Welt" der verheirateten Welt), das folgendes lieferte:
Das ist es! Oben ist das komplette Programm!
Es basiert auf ARM Cortex M3, schnell und mit viel Speicher für eingebettete Projekte (100 MHz, 256 KB Flash und 32 KB RAM). Die Online-Entwickler-Tools haben eine sehr gute Bibliothek und viele Beispiele und es gibt ein sehr aktives Forum. Viel Hilfe beim Anschließen von Geräten an MBED etc
Auch wenn ich viel Erfahrung mit eingebetteten Systemen habe (ARM 7/9, Renases M8 / 16/32, Coldfire, Zilog, PIC usw.), fand ich dies ein erfrischend einfaches System, mit dem ich mich mit ernsthaften Fähigkeiten auseinandersetzen konnte.
Nachdem ich anfangs auf einem einfachen Steckbrett damit gespielt hatte, kaufte ich ein Basisbrett von diesen Jungs: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsh9isa0c8ddcfmmn207. Dieser verfügt über eine Vielzahl von E / A-Geräten (einschließlich einer kleinen OLED und eines 3-Achsen-Beschleunigungsmessers). Von der gleichen Stelle habe ich auch eine der LCPExpresso-Prozessorkarten gekauft, die billig ist, weniger Strom / Speicher als das MBED, aber perfekt für kleinere Jobs (hämmert immer noch den Mist von PIC / Atmega-Prozessoren). Die Basisplatine unterstützt sowohl den LCPExpresso als auch den MBED. Durch den Kauf der LCPExpress-Prozessorkarte erhielt ich auch einen beigefügten JTAG-Debugger und eine Offline-Entwicklungsumgebung (Code Reds GCC / Eclipse-basiertes Entwicklungskit). Dies ist viel komplexer als die Online-MBED-Entwicklungsumgebung, aber eine logische Weiterentwicklung, nachdem Sie Erfahrung mit dem MBED gesammelt haben.
In Bezug auf meine ursprüngliche Bemerkung, dass der MBED-Controller viel leistungsfähiger ist als der LPCExpresso-Controller, ABER die Bedienung und das Erlernen ist viel einfacher.
quelle
Code Sourcing Lite ist gut, oder verwenden Sie Emdebian. Wenn Sie keine vollständige C- oder GCC-Bibliothek benötigen, können Sie dies problemlos tun, aber es ist etwas schwieriger. Zuerst brauchen Sie keinen thumb2-fähigen Compiler, da thumb nach einer Toolchain sucht, die Ihnen gefällt.
llvm ist eine andere gute (benutze clang nicht llvm-gcc !!), ich weiß, dass die Arm-Seite die ganze Zeit besser wird, Version 27 produzierte für einen bestimmten Test schnelleren Code als die aktuelle gcc. Ich habe bei der Arbeit an meinem Daumenemulator (thumbulator.blogspot.com) einen Fehler auf der Daumenseite gefunden, der umgehend behoben wurde. Das Beste an llvm ist, dass es sich standardmäßig um einen Cross-Compiler handelt, für den keine zusätzliche Arbeit oder Bauerfahrung erforderlich ist. In den nächsten Jahren sehe ich sie tiefer in gcc hineinschneiden und gcc für das Cross-Compilieren / Embedded vorbeiführen.
Ich habe das Code-Red-Tool einmal mit dem lpcxpresso-Board ausprobiert. Das Endergebnis ist, dass ich definitiv nie Code-Red verwende und überlege, ob ich auch lpc auf die schwarze Liste setzen soll. ymmv. Wenn Sie ein kostenpflichtiges Tool verwenden müssen, würde ich mich nur für keil entscheiden, weil sie von Arm gekauft wurden und ein Teil des Pakets der rvct-Compiler ist. Natürlich ist Code-Sourcing auch dann eine bezahlbare Sache, wenn Sie die Einschränkungen der Lite-Version nicht einhalten oder sich für Support entscheiden. Als GCC hat es bei weitem die beste Unterstützung für alle Compiler. Vor nicht allzu langer Zeit, als ich in der Lage war, sie zu testen, und Armes Werkzeuge haben gcc in Bezug auf die Qualität des erzeugten Codes umgehauen. gcc ist auf und ab, einige Versionen von 3.x produzieren besseren Code als 4.x, sie scheinen sich nicht bei jeder Veröffentlichung zu verbessern, aber sie haben vor nicht allzu langer Zeit Unterstützung für thumb2 hinzugefügt, was die 3.x-Versionen nicht tun Ich werde nicht haben.
quelle
If you have to use a pay for tool I would go with keil only because they were bought by arm
- Haben Sie die Keil-Compiler ausprobiert? Zumindest von den Keil 8051-Werkzeugen war ich nicht beeindruckt. Sie fühlen sich wie Dinosaurier im Vergleich zu GCC-basierten Wettbewerben oder der LLVM / Clang-Suite, IMHO.Ich benutze Rowley-Software für die ARM- und MSP430-Entwicklung:
http://www.rowley.co.uk
Es ist exzellent. Cortex-M3 wird unterstützt.
quelle
Ich benutze Yagarto + Eclipse + J-Link Edu Debugger. (Gnu Werkzeugkette)
http://www.yagarto.de/
quelle
Ich hatte ziemlich gute Erfolge mit IAR- Compiler / Debug-Ketten für meine ARM-Entwicklung. Sie bieten relativ stabile Entwicklungstools mit einer Embedded C ++ - Umgebung (die eher selten zu sein scheint). - Abhängig von Ihrer Codebasisgröße bieten sie auch hervorragende Hardware- / Software-KickStart-Kits mit codegrößenbeschränkten Versionen ihrer Tools an.
quelle
IAR ist exzellent, und wenn Sie kleine Projekte durchführen, gibt es eine kostenlose, auf 32 KB begrenzte Kickstart-Edition. Größen-Upgrades sind jedoch meiner Meinung nach ein bisschen teuer. Sie kommen auch mit Tonnen von guten Beispielprojekten, in der Regel mehrere für jede Prozessorfamilie.
quelle
Ich habe die letzten Tage damit verbracht, die CodeSourcery GNU-Toolchain vollständig für das EFM32G-Mikro unter OS X einzurichten. Es hat sich gelohnt. Im Vergleich zu vielen der GUI-basierten Debugger, die ich ausprobiert habe (hauptsächlich Eclipse-basiert); Makefiles, GCC und GDB sind ein wahr gewordener Traum; Außerdem funktioniert alles von meinem Linux- oder Mac-Terminal aus.
Der einzige Teil, der nervt, ist der in die Platine integrierte J-Link-Adapter. Das Windows- und Linux-GDBServer-Programm von J-Link ist Closed Source. Schlimmer noch, die Linux-Version ist VIEL weiter hinten. Damit GDB funktioniert, muss ich ein Windows VMWare-Image ausführen, dessen einziger Zweck darin besteht, den GDBServer auszuführen (da der Linux-Server defekt ist).
Oh und obendrein funktioniert der Linux-basierte GDB-Server von J-Link nicht richtig. Er bindet sich an 127.0.0.1 und hört NUR Pakete mit diesem Ziel ab. Um eine Verbindung von einem Remote-Computer herzustellen, müssen Sie also mit iptables herumspielen und weiterleiten. Lächerlich; Segger muss sich zusammenreißen.
quelle
Ich benutze QtCreator und GNU Tools ARM Embedded. Funktioniert gut.
Vorteile:
Nachteile:
Wenn alles richtig eingerichtet ist, kann ich klicken, um einen Haltepunkt in meinem Code zu erstellen, und dann auf die Schaltfläche "Debuggen" klicken. Es wird kompiliert, flashen, ausführen und am Haltepunkt in ca. 5 Sekunden pausieren (und Sie gleichzeitig wütend machen, wenn Sie jemals zur Arduino "IDE" zurückkehren müssen).
Ich arbeite an einem Tutorial, wie man dies mit einem anderen ARM-Chip einrichtet - dem Cortex-M0-basierten nRF51822.
quelle
Ich benutze CooCox-Tools, es ist ausgezeichnet, aber kostenlos zu verwenden, nicht in der Codegröße beschränkt. http://www.coocox.org/
quelle
Ich verwende arm-eabi-gcc und die dazugehörige Toolchain, die über das Summon-Arm-Toolchain-Skript installiert wird . Das Skript richtet die Umgebung für Bare-Metal-Arbeiten am ARM ein. Es ist kostenlos und Open Source und das alles und hat für mich zuverlässig funktioniert. Ich habe auch IAR dafür verwendet, und es ist sicherlich besser, dass Sie damit viel benutzerfreundlicher debuggen und Dinge auf IDE-Weise erledigen können, aber im Großen und Ganzen fühle ich mich mit gcc wohler, wenn auch aus keinem anderen Grund, weil ich Sie müssen die Kosten niemandem gegenüber rechtfertigen.
(Ich habe nie wirklich herausgefunden, wie man gdb für irgendetwas einsetzt, aber ich bin es nie wirklich gewohnt, einen Debugger zu verwenden oder sowieso einen zur Verfügung zu haben, also bin ich mir nicht sicher, ob ich qualifiziert bin, dieses Bit zu beurteilen.)
quelle
Ich benutze Emprog ThunderBench . Es ist ausgezeichnet, wahrscheinlich das beste, das ich je benutzt habe.
Am besten gefällt mir, dass es sich gleichzeitig um einen C / C ++ ARM-Cortex-Compiler , einen Debugger und eine IDE handelt.
quelle