Programmieren und Debuggen des STM32 mit C++

Aus Nicki Wiki
Zur Navigation springen Zur Suche springen

Dieses Tutorial zeigt wie mit der Standard IDE Eclipse Mikrocontrollern von STMicroelectronics mit C++ programmiert und debbugt werden kann. Voraussetzung ist die einrichtung von Eclipse nach dem Tutorial Programmieren und Debuggen des STM32 mit der Standard IDE Eclipse.
Ebenfalls wird auch hier das Discovery-Board: STM32F407G-DISC1 verwendet.

Projektbeispiel

In Eclipse File -> New -> C++ -> STM32F4xx C/C++ Project auswählen. Einen Projektnamen vergeben, hier Project name: HelloWorld. Den Ziel Prozessor auswählen, hier Target processor settings: STM32F407.

Datei:Target-prozessor-settings.jpg

Danach Next -> Next -> Next. Jetzt den Toolchain Pfad bis Ordner "bin" angeben, hier Toolchain path: D:\Programme\eclipse\GNU_ARM_Toolchain\5.4 2016q3\bin.

Datei:Cross-gnu-arm-toolchain.jpg

Und mit Finish bestätigen.

Debugging

Siehe Programmieren und Debuggen des STM32 mit der Standard IDE Eclipse.

Boardkonfiguration

Die Grundlegende Bord oder Chipconfiguration wird mit CubeMX durchgeführt. Nach der Konfiguration in CubeMX Project -> Settings... einen Project Namen vergeben, hier Project Namen HelloWorld, sowie einen Speicherort auswählen. Im Dropdown Menü Toolchain/IDE -> Other Toolchain auswählen und mit OK bestätigen.

Datei:Project-settings.jpg

Jetzt ist das Projekt unter Project –> Generate Code zu erzeugen. Im Anschluss mit Open Folder den Projekt-Ordner im Explorer öffnen. Oder Manuell zum erzeugten Projekt-Ordner navigieren. Die main.h vom CubeMX Projekt in den inc Ordner kopieren und in die _initialize_hardware.c einbinden. Die Funktionen für die Hardwarekonfiguration aus der main.c vom CubeMX Projekt in die _initialize_hardware.c kopieren (ersetzen).

Funktion Beispiel:

void SystemClock_Config(void)
void Error_Handler(void)
static void MX_GPIO_Init(void)


Datei:Workspace.jpg

Die “main.h” kann natürlich umbenannt werden (z.B. _initialize_hardware.h) damit es nicht zu Missverständnissen kommt.


Quellen