myavr.CHKRonline.de

Informationen und Projekte Rund um die Mikrocontroller-Programmierung
von myAVR (ATmega8), STM32 (Cortex-M3/4) und Raspberry Pi (ARM11)

Der Autor

Christian KrügerChristian Krüger, ursprünglich aus dem Altenburger Land stammend, wohnt heute in Nürnberg. Nach seinem Studium der Informations­technik an der West­sächsischen Hochschule in Zwickau, ist er heute Software Entwickler für ein­gebettete Systeme. Seine Berufung fand er im Dienst für seine Kollegen als Teamleiter bei ISCUE.

Die größte Leidenschaft Christians ist es, die Schönheit unserer Welt einzufangen und weiter­zuerzählen. Dies gelingt ihm mit Hilfe seiner Kamera. Seine Fotos und Videos sind auf Instagram und seiner Webseite zu betrachten.

Für seine Zukunft freut sich Christian auf erinnerungs­würdige Reisen, begeisterungs­fähige Menschen und viele neue Erfahrungen.

CHKRonline.de

Facebook Profil

Twitter Profil

XING Profil

STM32-Eclipse Tutorial

Linux Seite 4

Letzte Änderung: Montag, 26.09.2016 11:04

Projekt-Template Duplizieren

Um ein weiteres Projekt zu erstellen, genügt es, die Projekt-Mappe in Eclipse zu kopieren und neu einzufügen. Eclipse fragt daraufhin nach dem neuen Namen und Verzeichnis der Kopie. Es ist darauf zu achten, dass nicht ein Workspace-Zielverzeichnis wie

/opt/STM32-Workspace/Project/Example

angegeben, sondern ein Unterordner STM32-Eclipse verwendet wird:

/opt/STM32-Workspace/Project/Example/STM32-Eclipse

Nach dem Duplizieren der Mappe müssen die Quelldateien im Ordner User gelöscht und die neuen Dateien hinzugefügt warden. Je nach Projekt müssen auch weitere Bibliotheken angebunden werden.

Einige Beispielprojekte nutzen die NewLibC und benötigen daher zusätzlich Stub-Funktionen, die in der Datei syscalls.c vorliegen.

Projekt-Template Anpassung STM32F4

Für die Erstellung einer Projektmappe für den Cortex-M4 alias STM32F4 müssen in der Anleitung sämtliche Angaben und Pfade mit STM32F2 sowie STM322xG_EVAL durch STM32F4 und STM324xG_EVAL ersetzt werden. Das Projekt-Verzeichnis ist in diesem Fall:

/opt/STM32-Workspace/Project/STM32F4xx_StdPeriph_Template/

Die Dateien zum Evaluation Board befinden sich abweichend von dieser Regel unter:

/opt/STM32-Workspace/Utilities/STM32_EVAL/STM3240_41_G_EVAL

Das Startup-Script befindet sich abweichend von dieser Regel unter:

/opt/STM32-Workspace/Libraries/CMSIS/ST/
STM32F4xx/Source/Templates/TrueSTUDIO/startup_stm32f4xx.S

Zusätzlich sollte die Prozessor-Architektur in den Projekteinstellungen bei "cortex-m4" belassen werden.

Projekt Template Debugging

Wie bereits beim Aufbau der Toolkette beschrieben, wird Texane stlink für das Debugging verwendet. Das Programm sollte an dieser Stelle kompiliert vorliegen, ebenso wie der C/C++ GDB Hardware Debugging PlugIn des CDT.

Im ersten Schritt wird der stlink als externes Tool eingerichtet.

Run > External Tools > External Tools Configurations...

In der Baum-Ansicht links wird "Program" ausgewählt. Mit einem Rechtsklick und einem Klick auf "New" wird eine neue Konfiguration angelegt. Diese erhält oben im "Main"-Tab den Namen "Texane stlink". Als "Location:" wird der Pfad zum ST Texane stlink angegeben.

${eclipse_home}/ST-LINK/st-util

In das Feld "Working Directory:" wird eingetragen:

${eclipse_home}/ST-LINK/

Im Tab "Build" wird die Option "Build before launch" abgeschaltet. Unter dem Tab "Common" sollte bei "Display in favorites menu" das Menü "External Tools" angehackt werden. Mit "Apply" werden die Einstellungen gesichert. Der Dialog wird über "Close" verlassen.

Danach wird der Debugger eingerichtet. Dies geschieht in Eclipse unter:

Run > Debug Configurations...

In der Baum-Ansicht links wird "GDB Hardware Debugging" ausgewählt. Mit einem Rechtsklick und einem Klick auf "New" wird eine neue Konfiguration angelegt. Diese erhält oben im "Main"-Tab einen Namen, der sich auf das Zielsystem und die durchzuführenden Operationen beziehen sollte. Im Beispiel zunächst:

STM3220G-EVAL Flash and Debug

Unter "Project:" muss das Projekt, welches Debuggt werden soll, ausgewählt werden. Entsprechend sind Debug Konfigurationen vom Projekt abhängig und müssen für ein neues Projekt angepasst werden. Nachdem das Projekt ausgewählt wurde, kann im Dialog darüber "C/C++ Application:" das Binary ausgewählt werden, welches Debuggt werden soll. Wichtig: Das Projekt muss zuvor kompiliert worden sein, andernfalls liegen keine *.elf-Dateien vor. Die Einstellungen werden mit Apply gesichert.

Im Tab "Debugger" wird unter "GDB Command:" der GNU GDB angegeben:

${eclipse_home}/GCC_ARM_Embedded/bin/arm-none-eabi-gdb.exe

Als "Port number:" wird die 4242 eingetragen.

Unter "Startup" lässt sich das auszuführende Setup bestimmen. Im Fall von "Flash and Debug" soll das Programm zunächst in den Flash-Speicher des Mikrocontrollers geladen und dann debuggt werden. Dazu sind die Häckchen bei "Load image" und "Load symbols" aktiv zu belassen. Zusätzlich ist das Häckchen bei "Set breakpoint at:" zu setzen. In das Feld wird "main" geschrieben. Unter "Run Commands" sollte folgendes stehen:

Jump Reset_Handler

Unter "Common" sollte die Konfiguration wieder den Favoriten hinzugefügt werden. Die Einstellungen werden mit "Apply" gesichert.

Danach kann eine zweite Konfiguration namens

STM3220G-EVAL Debug

erstellt werden. Sie kann ein Duplikat der ersten Konfiguration sein. Es werden alle Einstellungen identisch zu der ersten Konfiguration angelegt mit der Ausnahme, dass "Load image" nicht aktiviert wird. Dadurch wird das Neuladen des Flash-Images verhindert, was viel Zeit sparen kann, wenn sich der Quellcode nicht verändert hat.

Eine dritte Konfiguration

STM3220G-EVAL Flash and Run

ohne Häckchen bei "Set breakpoint at:", dafür aber bei "Load image" erlaubt das schnelle Ausführen des Programms. Diese Konfiguration sollte außerdem die Release-Version eines Projekts laden anstatt der Debug-Version. Der Dialog wird über "Close" verlassen.

Die letzte Konfiguration heißt

STM3220G-EVAL Run

und führt die Release-Version aus, ohne den Mikrocontroller neu zu flashen.

Nun kann das Template-Programm debuggt werden. Vor dem Start einer Debug-Session muss der GDB-Server gestartet werden. Er lässt sich dann schnell über:

Run > External Tools > Texane stlink

oder mit dem Icon in der Toolbar starten.

Der Server bleibt über die Laufzeit von Eclipse aktiv und muss daher nicht erneut gestartet werden.

Danach kann die Debug-Session gestartet werden.

Debug-Icon in der Toolbar > STM322xG-EVAL Flash and Debug

Das Programm wird auf den Mikrocontroller übertragen und Eclipse schaltet in die Debug-Ansicht. Dort kann wie gewohnt debuggt werden. Sollten sich Debug-Session oder GDB-Server einmal aufhängen, lassen sie sich in dem Fenster "Debug" im Kontextmenü terminieren und neu starten. Dass ist auch der einzige Weg, wie ein Programm zum Anfang gesetzt werden kann.

Wird eine weitere Debug-Session gestartet, ohne dass die letzte beendet wurde, kann es zu Problemen kommen. Andere Fehlermeldungen lassen sich in der Regel durch Neustarten des GDB-Servers beheben.

Quellen

http://shareee.netne.net/wordpress/?p=5

https://sites.google.com/site/stm32discovery/home

https://sites.google.com/a/stf12.net/developer-sw-fw/eclipse-demo

http://www.mikrocontroller.net/articles/STM32F4-Discovery

http://www.mikrocontroller.net/articles/STM32_Eclipse_Installation

http://www.mikrocontroller.net/articles/STM32

http://www.mikrocontroller.net/topic/214719

http://chibios.org/dokuwiki/doku.php?id=chibios:guides:stlink_eclipse

http://wiki.ubuntuusers.de/Java/Installation/Oracle_Java?redirect=no

Zurück Seite 4 von 4