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

Windows Seite 3

Letzte Änderung: Montag, 26.09.2016 11:04

Auf der linken Seite ist der Project Explorer zu sehen. In ihm werden alle Dateien, die Teil eines Projekts sind angezeigt. Unterhalb der Wurzel STM32F2xx_StdPeriph_Template sollte sich nur ein virtueller Ordner namens Includes befinden. In ihm tauchen 6 Pfade auf.

STM32F2xx_StdPeriph_Template
 - Includes
  + C:/STM32-Eclipse/GCC_ARM_Embedded/arm-none-eabi/include
  + C:/STM32-Eclipse/GCC_ARM_Embedded/arm-none-eabi/include/c++/5.3.1
  + C:/STM32-Eclipse/GCC_ARM_Embedded/arm-none-eabi/include/c++/5.3.1/arm-none-eabi/armv7-m
  + C:/STM32-Eclipse/GCC_ARM_Embedded/arm-none-eabi/include/c++/5.3.1/backward
  + C:/STM32-Eclipse/GCC_ARM_Embedded/lib/arm-none-eabi/include/5.3.1/include
  + C:/STM32-Eclipse/GCC_ARM_Embedded/lib/arm-none-eabi/include/5.3.1/include-fixed

Nun müssen dem Projekt einige weitere Include-Pfade bekannt gemacht werden. Dazu sind die Projekt-Einstellungen zu öffnen.

Rechtsklick auf Projekt > Properties

In den C/C++ Einstellungen

C/C++ General > Paths and Symbols > Includes

werden folgende Pfade unter den Sprachen "GNU C" und "GNU C++" über "Add..." nachgetragen. Zu beachten ist, dass dabei oben bei "Configuration" "[All configurations]" ausgewählt ist. Idealerweise verwendet man dazu die Optionen "Add to all configurations" und "Add to all languages" im Dialogfenster. Die relativen Pfade erlauben die spätere Portierung der gesamten Entwicklungsumgebung.

${WorkspaceDirPath}/Libraries/CMSIS/Include
${WorkspaceDirPath}/Libraries/CMSIS/Device/ST/STM32F2xx/Include
${WorkspaceDirPath}/Libraries/STM32F2xx_StdPeriph_Driver/inc
${ProjDirPath}/../

Die folgenden Pfade beziehen sich auf das STM322xG-EVAL Evaluation Board. Sie sind zum Kompilieren vieler Beispiel-Projekte notwendig, dienen aber keinem Zweck bei anderen Plattformen mit STM32F2-Mikrocontroller.

${WorkspaceDirPath}/Utilities/STM32_EVAL
${WorkspaceDirPath}/Utilities/STM32_EVAL/Common
${WorkspaceDirPath}/Utilities/STM32_EVAL/STM322xG_EVAL

Nach Bestätigung des Dialogs sollte der virtuelle Ordner Includes einige weitere Pfade enthalten.

Nun werden der Projekt-Mappe externe Quellcode-Dateien bekannt gemacht. Da sie im Augenblick keinerlei Quellen beinhaltet, werden alle als externe hinzugefügt. Dies erlaubt eine bessere Trennung von Quell-Dateien und Entwicklungsumgebung bzw. Projekt-Daten.

Im ersten Schritt werden mehrere virtuelle Ordner angelegt. Dazu muss im Project Explorer zunächst das Projekt selbst ausgewählt werden. Über

File > New > Folder

kann ein neuer Ordner, ein symbolischer Link oder ein virtueller Ordner erstellt werden. Da verlinkte Ordner es nicht erlauben, die Projektmappe selbst zu verlinken, muss an dieser Stelle auf virtuelle Ordner ausgewichen werden.

In dem sich öffnenden Dialog kann unter "Folder name:" der neue Ordnername angegeben werden. Nach einem Klick auf "Advanced" stehen die Optionen zur Erstellung normaler, virtueller und verlinkter Ordner zur Verfügung. Es sollte "Folder is not located in the file system (Virtual Folder)" ausgewählt werden. Folgende Ordner sind zu erstellen:

StdPeriph_Driver
Startup
STM322xG_EVAL
User

Danach sollten vier neue Ordner im Project Explorer vorhanden sein, welche ein kleines weißes Viereck tragen. Es handelt sich dabei um virtuelle Ordner. Den Ordnern müssen nun die benötigten Quelldateien hinzugefügt werden. Dies geschieht über verlinkte Dateien. Um eine verlinkte Datei zu erstellen gibt es zwei Wege.

Variante 1: Über

File > New > File

lässt sich eine einzelne Datei hinzufügen. Dazu muss im Dialog erneut auf "Advanced" geklickt werden. Unter "Link to file in the file system" kann die Zieldatei – also die Datei im Dateisystem – angegeben werden. Der Dateiname wird automatisch von dieser übernommen und sollte der Übersicht halber nicht geändert werden.

Variante 2: Aus dem Windows Explorer lassen sich Dateien per Drag&Drop in den Project Explorer und einen seiner Unterordner ziehen. Eclipse fragt daraufhin, ob die Datei kopiert oder ein Link erstellt werden soll. Bei Auswahl des Links fragt Eclipse zudem, ob der Pfad relativ sein soll. Der Link sollte immer relativ erstellt werden. Auf diese Weise lassen sich auch mehrere Dateien schnell hinzufügen.

Zu beachten ist, dass verlinkte Dateien in Eclipse nicht gelöscht werden. Entfernt man eine Datei, so wird lediglich der symbolische Link gelöscht, nicht jedoch die Kopie auf der Festplatte. Verlinkte Dateien erkannt man an einem kleinen Pfeil im Project Explorer.

Der Ordner StdPeriph_Driver enthält, wie der Name vermuten lässt, die Quelldateien zur Standard Peripheral Library. Diese befinden sich im Beispiel unter:

C:\STM32-Workspace\Libraries\STM32F2xx_StdPeriph_Driver\src

Alle Dateien innerhalb des Ordners sollten dem virtuellen Ordner StdPeriph_Driver hinzugefügt werden.

Der virtuelle Ordner Startup enthält das Startup-Script. Dieses wird vom Atollic TrueStudio übernommen. Es befindet sich unter:

C:\STM32-Workspace\Libraries\CMSIS\CM3\DeviceSupport\
ST\STM32F2xx\startup\TrueSTUDIO

Da die Datei umbenannt werden muss, ist es empfehlenswert, eine Kopie des Ordners zu erstellen und in STM32-Eclipse umzubennenen.

C:\STM32-Workspace\Libraries\CMSIS\CM3\DeviceSupport\
ST\STM32F2xx\startup\STM32-Eclipse

Damit das Startup-Script von Eclipse korrekt kompiliert wird, muss es umbenannt werden.

startup_stm32f2xx.s > startup_stm32f2xx.S

Danach kann die Datei dem virtuellen Ordner hinzugefügt werden:

C:\STM32-Workspace\Libraries\CMSIS\CM3\DeviceSupport\
ST\STM32F2xx\startup\STM32-Eclipse\startup_stm32f2xx.S

Der Ordner STM322xG_EVAL beinhaltet Quelldateien für die Unterstützung der STM322xG-EVAL Evaluation Boards. Sie sind zum Kompilieren vieler Beispiel-Projekte notwendig, dienen aber keinem Zweck bei anderen Plattformen mit STM32F2-Mikrocontroller. Im Fall des Template-Projekts sind folgende Dateien notwendig.

C:\STM32-Workspace\Utilities\STM32_EVAL\STM322xG-EVAL\stm322xg_eval.c
C:\STM32-Workspace\Utilities\STM32_EVAL\STM322xG-EVAL\stm322xg_eval_fsmc_sram.c
C:\STM32-Workspace\Utilities\STM32_EVAL\STM322xG-EVAL\stm322xg_eval_ioe.c
C:\STM32-Workspace\Utilities\STM32_EVAL\STM322xG-EVAL\stm322xg_eval_lcd.c

Sollen für bestimmte Projekte weitere Bibliotheken hinzugefügt werden – z.B. der USB Treiber, weitere Teile der Evaluation-Board Unterstützung oder Bibliotheken von Dritten, kann dies später wie oben beschrieben nachgeholt werden. Ggf. können auch weitere virtuelle Ordner angelegt werden, um große Datei-Mengen zu beherrschen.

Der letzte Ordner heißt User und enthält den Anwender-Code. Dieser befindet sich für das Template unter:

C:\STM32-Workspace\Project\STM32F2xx_StdPeriph_Template\

Es ist darauf zu achten, nur Quell- und Ressourcen-Dateien hinzuzufügen, nicht jedoch Teile der anderen Projekt-Mappen, die sind in dem Verzeichnis befinden.

Als nächstes müssen 3 Symbole für die Verwendung der Standard Peripheral Library hinzugefügt werden. Dies geschieht wieder in den Projekt-Einstellungen unter:

C/C++ General > Paths and Symbols > Symbols

Wieder ist darauf zu achten, dass als Sprache "GNU C" und "GNU C++" verwendet wird und die Änderung auf alle Konfigurationen angewandt wird.

USE_STDPERIPH_DRIVER
STM32F2XX

Das folgende Symbol bezieht sich auf das STM322xG-EVAL Evaluation Board. Es ist zum Kompilieren vieler Beispiel-Projekte notwendig, dient aber keinem Zweck bei anderen Plattformen mit STM32F2-Mikrocontroller.

USE_STM322xG_EVAL

Die nachfolgenden Einstellungen finden sich unter

C/C++ Build > Settings > Tool Settings

Zunächst sollte unter dem Menüpunkt "Target Processor" der "cortex-m3" ausgewählt werden. Im weiteren Verlauf der Menüstruktur links lassen sich alle bisher getätigten Änderungen detailliert überprüfen. Weiterhin findet man dort Einstellungen für Optimierung, Verwendung bestimmter Hardware und viele weitere Detail-Einstellungen. Diese sollen an dieser Stelle jedoch nicht verändert werden.

Als nächstes wird der Linker konfiguriert. Als Linker-Script dient jenes aus dem Atollic TrueStudio. Ein Ordner TrueSTUDIO ist bereits Teil des aktuellen Template-Verzeichnisses. Dort finden sich zwei Linker-Scripte. Eines für den externen SRAM des STM322xG-EVAL Evaluation Boards und eines für den STM32F2 allgemein. Letzteres wird an dieser Stelle verwendet. Die Linker-Einstellungen befinden sich im Tab "Tool Settings" unter:

Cross ARM C++ Linker > General

Unter dem Punkt "Script file (-T)" wird der Pfad zu eben beschriebenem Linker-Script angegeben. Es bietet sich an, das Script zuvor in den Projekt-Ordner zu kopieren.

C:\STM32-Workspace\Project\STM32F2xx_StdPeriph_Template\
STM32-Eclipse\stm32_flash.ld

Der Pfad sollte relativ angegeben werden:

${ProjDirPath}/stm32_flash.ld

Zuletzt ist das Ausgabe-Format anzupassen. Dies geschieht unter:

Cross ARM GNU Create Flash Image > Output

Das "Output file format (-O)" ist auf "Raw binary" zu stellen.

Nun sollte sich das Template-Projekt kompilieren lassen. Wie das entstehende Flash-Image auf den Mikrocontroller übertragen wird, wird im Kapitel "Projekt Template Debugging" erläutert. Bei der weiteren Verwendung von Compiler und Linker ist darauf zu achten, benötigte Include-Pfade und Quell-Dateien in das Projekt einzubinden. Bei Bedarf können die Dateien .project und .cproject aus den, in den meisten Beispiel-Projekten mitgelieferten, Atollic TrueStudio Projektmappen als Referenz benutzt werden. Es handelt sich dabei um Eclipse-Projektdaten im XML-Format, die sich mit einem Text-Editor gut lesen lassen. Von Interesse sind meist die Include-Pfade sowie verlinkte Dateien.

Zurück Seite 3 von 4 Weiter