2013-07-21 21 views
8

Ich habe ein Tiva C-Serie LaunchPad TM4C123G Evaluation Kit von Texas Instruments gekauft. Dieses Kit enthält eine kleine Platine mit einem ARM Cortex M4F Mikrocontroller. Jetzt möchte ich anfangen, Software für diesen Mikrocontroller zu schreiben. Ich bin es gewohnt, AVR 8-Bit-Mikrocontroller mit AVR Studio unter Windows zu programmieren. Ich habe gehört, dass es einfach sein sollte, ARM-basierte Mikrocontroller unter Linux zu programmieren, und da Linux meine Hauptplattform ist, möchte ich eine einfache IDE, die mehr oder weniger so funktioniert, wie ich es von AVR gewöhnt bin.ARM-Entwicklung unter Linux

Seit einigen Tagen habe ich nach einer guten IDE und Werkzeugen gesucht, die diese Aufgabe erfüllen. Zu meiner Überraschung werden nur einige unter Linux laufen, und keines ist Open Source oder Freeware. Kann das wirklich wahr sein? Ich möchte nicht mehrere hundert Dollar ausgeben, nur um etwas Programmierung für den Cortex M4F auszuprobieren. Ich möchte auch nicht erst eine IDE lernen, dann eine andere später, als ich herausfand, dass es nicht gut genug oder zu teuer ist. Ich bin an Linux und die Open-Source-Methode gewöhnt, und ich bin sehr schockiert, dass niemand ernsthafte eingebettete ARM-Programmierung mit Open-Source-Tools unter Linux zu tun scheint. Bitte korrigieren Sie mich, wenn ich falsch liege.

Ich habe keine Pläne, Linux auf dem Cortex M4F laufen zu lassen - ich möchte es nur wie einen normalen Mikrocontroller programmieren.

Texas Instruments empfiehlt eine der folgenden Werkzeugketten auf der Rückseite des Evaluation-Kit:

  • Code Composer Studio IDE: voll funktionsfähige Board gesperrt
  • Keil: 32KB Adresse
  • IAR begrenzt: 32KB-Adresse beschränkt
  • Mentor Embedded Sourcery Codebench: 30-Tage voll funktionsfähige

wurde mir auch Red Studio von code_red empfohlen.

Weder ist Open Source oder kostenlos und alle haben Einschränkungen. Es scheint mir, dass nur Code Composer Studio und Red Studio Linux-kompatibel sind.

Ich bin auf ein weiteres Produkt gestoßen, Rowley CrossWorks, das auch Linux-kompatibel ist, aber immer noch sehr kommerziell und teuer.

Stimmt es wirklich, dass es keine Open-Source-Alternative gibt? Die meisten Produkte scheinen Eclipse und GCC zu verwenden, auf die man ohne diese kommerziellen Pakete verzichten sollte, oder? Ich kann einfach kein Tutorial oder eine Anleitung finden, die erklärt, wie man das für die Embedded ARM-Programmierung einrichtet. Außerdem muss ich wissen, wie man das Gerät nach dem Kompilieren programmiert.

Ich möchte wirklich bald anfangen. Irgendwelche Ratschläge und Ideen werden sehr geschätzt :-)

+0

https://github.com/dwelch67/stellaris_launchpad Ich frage mich, ob sie den stellaris Namen losgeworden sind und jetzt ist es Tiva. Ich benutze keine IDE, wenn Sie auf eine IDE beschränkt sind, sind Sie allein. Aber die Gnu-Tools funktionieren einwandfrei, Sie müssen nicht mit diesen Pay-for-Markennamen-Tools gehen ... es sei denn, Sie wollen wirklich ... –

+0

yep, sie Stellaris Stellvertreter als Tiva c ... –

+0

@ pvh1987 - Ihre Die Frage scheint sowohl auf Spam-Antworten als auch auf die Aufmerksamkeit des Moderators zu stoßen. Tatsache ist, dass das, was Sie tun möchten, möglich ist, indem Sie nur kostenlose Tools verwenden (in der Regel einige Versionen von GCC), aber es kann ein wenig Arbeit und Erfahrung erfordern, und der Beispielcode des Herstellers benötigt oft Portierung und Build-Skript schreiben, bevor es funktioniert. –

Antwort

8

Es ist immer das gleiche, egal welche Evaluierungskarte Sie haben: STM32 Entdeckung, LPCXpresso, TI Launchpads. Sie sind sehr billig, aber die empfohlenen IDEs sind begrenzt: Ihre Code-Größe ist begrenzt, nur Windows, oder sie sind an eine bestimmte Linux-Distribution gebunden.

Nach meiner Erfahrung hängt die Wahl auf Ihre langfristigen Ziele:

  • Haben Sie Code mit AVR 8-Bit (oder PIC32, Renesas RX 32, ...) teilen möchten?
  • Ist es ein mittelfristiges/langfristiges Ziel, ein auf make basierendes Build-System zu haben?
  • Benötigen Sie Tab-Vervollständigung und/oder einen integrierten Debugger?
  • Möchten Sie in Zukunft andere Eval Boards testen (ohne eine weitere IDE installieren zu müssen)?

oder wollen Sie einfach nur schnell und schnell loslegen. In diesem Fall würde ich eine der empfohlenen IDEs verwenden, um einen Eindruck zu erhalten.

Auf der anderen Seite, alle 32-Bit-Mikrocontroller, die ich verwendet habe (Cortex-M0/3/4, PIC32, Renesas RX) kann mit gcc programmiert werden. Soweit ich weiß, verwenden Code Red, Mentor und MPLABX gcc (oder eine modifizierte gcc).

So gibt es immer die Möglichkeit, Eclipse mit einem Makefile Projekt zu verwenden, und gcc. Ich habe es zweimal versucht, aber es funktionierte nicht gut für mich, weil ich Bibliotheken zwischen den verschiedenen Zielen teile, und ich fand es schwierig, die Definitionen in Eclipse zu umgehen.

So ist mein IDE Makefile, Emacs und gcc, und ich habe vollständig mit C++ geschaltet: Dies ist ein weiterer Vorteil sein könnte gcc zu verwenden.

Beide Möglichkeiten (Eclipse Makefile Projekt oder nur Editor mit Make) sind nicht „von der Stange“: Sie benötigen Zeit, Geduld und Ihre Lieblings-Internet-Suchmaschine.

aktualisieren

Ich bin mir nicht bewusst eine komplette Anleitung, wie das Einrichten ein GCC + basierte Umgebung machen, so beschreibe ich einfach die grundlegenden Schritte, die ich es vor einigen Jahren (mit einigen Änderungen) .

Die folgenden Schritte sind STM32 spezifisch:

  • einem der Entdeckung Platten Erhalten, zum Beispiel die STM32 Wertlinie Entdeckung.

  • Get ein Flash-Dienstprogramm: Ich verwende stlink (git clone https://github.com/texane/stlink.git). Dies beinhaltet auch ein GDB-Backend.

  • Es gibt verschiedene Beispiele zur Verfügung, wenn nach "stm32vl Entdeckung blink" (ich nicht ein hier empfehlen kann, die ich verwenden, ist verschwunden)

Als Alternative (oder Follow-up): Get die Peripherie Firmware Beispiele

  • Sie erhalten eine GNU ld kompatiblen Linker-Skript in Project/Examples/GPIOToggle/TrueSTUDIO/stm32_flash.ld

  • finden
  • Sie Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_ld_vl.s

  • Sie alle anderen erforderlichen Bibliotheksdateien und Quellen in der ZIP-Archiv als auch finden in einer GNU kompatibles Startup zu finden sind

  • Blick auf die GPIOToggle Projekt (Project/Examples/GPIOToggle)

  • schreiben Makefile zu kompilieren, linken und Flash-

+0

Kannst du irgendwelche Tutorials für jemanden vorschlagen, der erwägt, die Kugel zu beißen und sie von der Kommandozeile aus zu tun? [Einrichten der Werkzeugkette, Arbeitsablauf, ...] Ich gebe zu, eine IDE-Abhängigkeitsgewohnheit zu haben (unter Berücksichtigung einer Unterstützungsgruppe dafür). Aber wie Sie feststellen, sind die Optionen unter Linux nicht vorhanden. Ich habe ein paar STM32-Boards, mit denen ich spielen möchte, möchte aber auch mit anderen Anbietern zurechtkommen. – norlesh

+0

@norlesh Ich habe die Antwort aktualisiert. Diese Schritte gelten auch für andere Anbieter: NXP (lpc), TI (Stellaris), .... – Beryllium

+0

Verwenden Sie keine Open-Source-Tools. Sie benötigen einen guten Debugger, eine nette Schnittstelle zum Lesen von Registerzuständen und andere Cookies für den PRO-Einsatz. Diese kommen nie mit Open-Source-Tools zusammen.Ich habe alles versucht, um eine freie Programmierschnittstelle für ARM zusammen mit dem Debugger einzurichten, und insgesamt kann es unter Linux nicht kostenlos gemacht werden. Meine beste Chance war die Verwendung von IDE KDevelop/Eclipse/CodeBlocks zusammen mit Makefiles, aber keines dieser Tools hatte eingebaute Cookies. Ich kompensierte dies, indem ich Seggers J-LINK JTAG Probe kaufte und JLink Commander benutzte, um Register in externem Terminal zu überwachen, aber es saugte ... Buy propietary tools ... – 71GA

1

Ihre eigene Entwicklungsumgebung bauen Sie die folgende Kombination verwenden:

  • Eclipse-CDT
  • Holen Sie sich das Werkzeugkette verwendet werden soll (offizielle GCC-Version oder eine Drittanbieter für die jeweilige Plattform angepasst)
  • die Integration Toolchain in die Eclipse-Umgebung entweder über das interne Eclipse-Build-System (CDT-Builder) oder über einen externen Builder (z. B. machen)
  • Um JTAG Debug-Unterstützung zu haben, gibt es eine GDB Hardware-Debugging Eclipse-Plug-In zu installieren benötigen

Ich habe es geschafft, mein eigenes Setup so für LPC1769 abzuschließen (Cortex-M3-CPU) und es funktionierte :)

+0

Kannst du irgendwelche Links teilen, die helfen, Eclipse zu konfigurieren, Embedded Linux zu entwickeln . Ich würde gerne Eclipse CDT konfigurieren, um Software für TIVA Cortex M4-Prozessor zu entwickeln –

+0

Cortex M4 ist nicht in der Lage, eine vollständige Embedded Linux, nur uClinux ausgeführt werden. – Adi

+0

Danke für Ihre Eingabe, ich konnte Eclipse CDT für die Programmierung von Cortex-M4 konfigurieren. Attach ist ein Link, der mir hilft, loszulegen. http://chrisrm.com/howto-develop-on-the-ti-tiva-launchpad-using-linux/. Dein Beitrag war sehr hilfreich. –