ARM-Entwicklung auf Linux
Kaufte ich eine Tiva C-Serie TM4C123G LaunchPad Evaluation Kit von Texas Instruments. Dieses kit enthält eine kleine platine mit einem ARM-Cortex-M4F-mikrocontroller. Jetzt möchte ich beginnen, das schreiben von software für microcontroller. Ich bin verwendet, um das Programm AVR-8-bit-mikrocontroller mit AVR-Studio unter Windows. Ich habe gehört, dass es sein soll, einfach zu Programmieren ARM-basierte mikrocontroller unter Linux, und da ist Linux mein Haupt-Plattform, möchte ich eine einfache IDE, die Arbeit wird mehr oder weniger wie ich es gewohnt bin von AVR.
Seit mehreren Tagen habe ich die Suche für eine gute IDE und tools, die den job machen. Zu meiner überraschung, nur einige von Ihnen laufen auf Linux, und ist keine open source oder freeware. Kann das wirklich wahr sein? Ich will nicht zu verbringen mehrere hundert Dollar, nur um zu versuchen, einige für die Programmierung auf der Cortex-M4F. Noch will ich lernen muss IDE jetzt und dann noch später, wenn ich herausgefunden habe, ist es nicht gut genug oder zu teuer. Ich bin verwendet, um Linux und die open-source-Weg, Dinge zu tun, und ich bin sehr schockiert, dass niemand scheint zu tun, jede ernsthafte embedded-ARM-Programmierung mit open-source-tools unter Linux. Bitte korrigieren Sie mich, wenn ich falsch bin.
Ich habe keine Pläne für Linux auf der Cortex-M4F - ich will einfach nur, um ihn zu Programmieren, wie ein normaler mikrocontroller.
Texas Instruments empfiehlt eine der folgenden tool-Ketten auf der Rückseite des evaluation kit:
- Code Composer Studio IDE: voll funktionale board gesperrt
- Keil: 32KB-Adresse beschränkt
- IAR: 32KB-Adresse beschränkt
- Mentor Embedded Sourcery CodeBench: 30-Tage voll funktionsfähige
Habe ich auch schon empfohlen Red Studio von code_red.
Weder ist open source oder freie, und alle haben Ihre Grenzen. Es scheint mir, dass nur Code Composer Studio und Red Studio ist Linux-kompatibel.
Stolperte ich über ein weiteres Produkt, Rowley CrossWorks, die auch Linux kompatibel sind, aber immer noch sehr kommerziell und teuer.
Ist es wirklich wahr, dass es keine open-source-alternative? Die meisten Produkte scheinen für die Verwendung von Eclipse und GCC, das sollte man in der Lage sein zu tun, ohne die kommerziellen Pakete, richtig? Nur ich finde keine Tutorials oder Anleitung erklären, wie man für den embedded-ARM-Programmierung. Auch muss ich wissen, wie das Programm das Gerät nach dem kompilieren.
Ich möchte wirklich bald Los. Ratschläge und Ideen sind sehr willkommen 🙂
- github.com/dwelch67/stellaris_launchpad ich Frage mich, ob Sie entledigte sich die stellaris Namen und nun ist es tiva. Ich verwende keine IDE, wenn Sie beschränkt sich auf die Verwendung einer IDE -, auch Sie sind auf Ihre eigenen. Aber die gnu-tools für die Arbeit völlig in Ordnung, Sie müssen nicht zu gehen mit diesen zahlen-für die Marken-Namen-tools...es sei denn, Sie wirklich wollen, um...
- ja, Sie umbenannt stellaris als tiva c...
- Ihre Frage scheint zu sein, zieht sowohl die Spam-Antworten und überschüssige moderator Aufmerksamkeit. Einfache Tatsache ist, dass das, was Sie tun möchten, ist möglich, nur mithilfe von kostenlosen tools (in der Regel eine version von GCC) allerdings kann es ein bisschen Arbeit und Erfahrung zu richten, und Hersteller-Beispiel-code müssen oft einige Portierung und build-Skript zu schreiben, bevor es funktionieren wird.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist immer das gleiche, egal, welches eval-board, die Sie haben: STM32-discovery, LPCXpresso, TI Startrampen. Sie sind sehr Billig, aber die empfohlenen IDEs sind begrenzt: Ihre code-Größe beschränkt ist, nur Windows, oder Sie sind gebunden an eine bestimmte Linux-distribution.
Meiner Erfahrung hängt die Wahl auf Ihre langfristigen Ziele:
make
?oder willst du einfach nur dieses eine und läuft schnell. In diesem Fall würde ich verwenden Sie eine der empfohlenen IDEs um einen Eindruck zu bekommen.
Hingegen, alle 32-bit-mikrocontroller, die ich verwendet habe (Cortex-M0/3/4, PIC32, Renesas RX) kann programmiert werden mit
gcc
. Soweit ich weiß, Code Red, Mentor und MPLABX verwendengcc
(oder eine modifiziertegcc
).Damit es immer die Möglichkeit nutzen
Eclipse
mit einemMakefile
Projekt, undgcc
.Ich habe es zweimal, aber es funktionierte nicht gut für mich, da ich Bibliotheken gemeinsam nutzen, die zwischen den verschiedenen Zielen, und ich fand es schwer zu passieren, um den definiert in Eclipse.
Also meine IDE ist
Makefile
,Emacs
, undgcc
, und die habe ich komplett ausgeschaltet, um mit C++: Das könnte ein weiterer Vorteil der Verwendunggcc
.Beide Möglichkeiten (Eclipse mit Makefile-Projekt oder nur editor mit machen) sind nicht "von der Stange": Sie erfordern Zeit, Geduld, und Ihre Lieblings-Internet-Suchmaschine.
Update
Ich bin mir nicht bewusst, eine vollständige Anleitung, wie die Einrichtung einer GCC + make basierten Umgebung, sodass ich einfach beschreiben Sie die grundlegenden Schritte, die ich Tat es vor einigen Jahren (mit einigen änderungen).
Folgende Schritte sind STM32-spezifischen:
Hol dir den discovery-boards, zum Beispiel das STM32 value line Discovery.
Bekommen ein flash-Programm: ich bin mit stlink (
git clone https://github.com/texane/stlink.git
). Dies beinhaltet einen GDB backend sowie.Gibt es verschiedene Beispiele zur Verfügung, suchen Sie nach "stm32vl discovery blinken" (ich kann nicht empfehlen, eine hier, die ich benutzt habe ist verschwunden)
Als alternative (oder follow-up): Holen Sie sich die Peripheren firmware-Beispiele
Finden Sie ein GNU-ld-kompatiblen linker-Skript in
Project/Examples/GPIOToggle/TrueSTUDIO/stm32_flash.ld
Finden Sie eine GNU-kompatible Start in
Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_ld_vl.s
Finden Sie alle anderen erforderlichen library-include-Dateien und-Quellen in der .zip-Archiv als auch
Blick auf die GPIOToggle Projekt (
Project/Examples/GPIOToggle
)Schreiben Sie ein Makefile zum kompilieren, verknüpfen und flash
Bauen Ihre eigenen Entwicklungsumgebung können Sie mit der folgenden Kombination:
Habe ich es geschafft auf meinem eigenen setup so für LPC1769 (Cortex-M3 CPU) und es hat geklappt 🙂