ARM-Entwicklung unter Linux [geschlossen]

8

Ich habe ein LaunchPad TM4C123G Evaluierungskit der Tiva C-Serie 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 gewohnt bin.

Seit einigen Tagen suche ich nach einer guten IDE und Werkzeugen, 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 nicht vor, 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 Evaluierungskits:

  • Code Composer Studio IDE: Voll funktionsfähige Karte gesperrt
  • Keil: 32KB Adresse begrenzt
  • IAR: 32KB Adresse begrenzt
  • Mentor Embedded Sourcery CodeBench: 30 Tage voll funktionsfähig

Ich wurde 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 stolperte über ein weiteres Produkt, Rowley CrossWorks, das ebenfalls 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. Alle Ratschläge und Ideen werden sehr geschätzt: -)

    
pvh1987 21.07.2013, 22:23
quelle

2 Antworten

8

Es ist immer dasselbe, egal, welches Evaluationsboard Sie haben: STM32-Erkennung, 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 von Ihren langfristigen Zielen ab:

  • Möchten Sie Code mit AVR 8-Bit (oder PIC32, Renesas RX 32, ...) teilen?
  • Ist es ein mittelfristiges / langfristiges Ziel, ein Build-System zu haben, das auf make ?
  • basiert?
  • Benötigen Sie Tab-Vervollständigung und / oder einen integrierten Debugger?
  • Möchten Sie in Zukunft andere eval-Boards ausprobieren (ohne gezwungen zu sein, noch eine weitere IDE zu installieren)?

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

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

Es besteht also immer die Möglichkeit, Eclipse mit einem Makefile -Projekt und gcc zu verwenden. 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.

Also ist meine IDE Makefile , Emacs und gcc , und ich habe komplett auf C ++ umgestellt: Das könnte ein weiterer Vorteil der Verwendung von gcc sein.

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

Aktualisieren

Mir ist kein vollständiges Tutorial bekannt, wie man eine GCC + make basierte Umgebung einrichtet, also beschreibe ich einfach die grundlegenden Schritte, die ich vor einigen Jahren gemacht habe (mit einigen Änderungen).

Die folgenden Schritte sind STM32-spezifisch:

  • Rufen Sie eine der Erkennungsplatinen auf, z. B. die STM32-Werteliste Discovery .

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

  • Es gibt verschiedene Beispiele, suchen Sie nach "stm32vl discovery blink" (ich kann hier keinen empfehlen, der von mir verwendete ist verschwunden)

Als Alternative (oder Nachfolge): Rufen Sie die Peripheral firmware examples

ab
  • Sie finden ein GNU ld-kompatibles Linker-Skript in Project/Examples/GPIOToggle/TrueSTUDIO/stm32_flash.ld

  • Sie finden ein GNU als kompatiblen Start in Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_ld_vl.s

  • Sie finden alle anderen erforderlichen Bibliotheks-Include-Dateien und -Quellen auch im .zip-Archiv

  • Sehen Sie sich das GPIOTogle -Projekt an ( Project/Examples/GPIOToggle )

  • Schreiben Sie ein Makefile zum Kompilieren, Verknüpfen und Flashen

Beryllium 22.07.2013, 07:19
quelle
1

Um Ihre eigene Entwicklungsumgebung zu erstellen, könnten Sie die folgende Kombination verwenden:

  • Eclipse CDT
  • Holen Sie sich die Toolchain, die verwendet werden soll (offizielle GCC-Version oder ein Drittanbieter, der für Ihre Plattform angepasst wurde)
  • Integrieren Sie die Toolchain in die Eclipse-Umgebung entweder über das interne Eclipse-Build-System (CDT-Builder) oder über einen externen Builder (z. B. make)
  • Um JTAG-Debugging-Unterstützung zu haben, gibt es ein GDB-Hardware-Debugging-Eclipse-Plug-in, das Sie einrichten müssen

Ich habe es geschafft, mein eigenes Setup für LPC1769 (Cortex-M3-CPU) zu vervollständigen und es hat funktioniert:)

    
Adi 22.07.2013 12:22
quelle

Tags und Links