Tipps und Tricks

Tipp für STM32-Entwickler: Konvertieren Sie Ihr Projekt von C in C++ mit STM32CubeMX und Open System Workbench for STM32

Diesen Tipp haben wir für Entwickler zusammengestellt, die mit der Workbench for STM arbeiten und ihr Projekt mit C++ kompilieren wollen.

Generieren Sie den C-Code in der STM32CubeMX gemäß der Hardware-Konfiguration für die System Workbench for STM32. Hier wird die C++ Codegenerierung nicht unterstützt.

STM32CubeMX Codegenerierung - Projekteinstellungen

Bild 1: STM32CubeMX Codegenerierung – Projekteinstellungen

Öffnen Sie das erstellte Projekt mit der System Workbench for STM32 (z.B. über Doppelklick auf die .project Datei im erzeugten Projektordner).

Erstellen Sie das Projekt. Es können noch Fehlermeldungen auftreten.

Konvertieren Sie mithilfe der System Workbench for STM32 das C Projekt in ein C++ Projekt; verwenden Sie dazu das Kontextmenü.

STM32CubeMX Projekt-Kontextmenü im Projekt-Browser

Bild 2: Projekt-Kontextmenü im Projekt-Browser

Überprüfen Sie die C++ Projekt-Einstellungen (normalerweise ist nichts zu verändern). Die Pfad-Einstellungen werden automatisch aus den vorherigen C-Einstellungen kopiert.

STM32CubeMX - C++ Projekt-Einstellungen

Bild 3: C++ Projekt-Einstellungen

Benennen Sie im Projekt-Browser main.c in main.cpp um.

STM32CubeMX - Projektbrowser

Bild 4: Projektbrowser-Ansicht

Fügen Sie folgende Zeilen in main.h hinzu:



#ifndef __MAIN_H

#define __MAIN_H

#ifdef __cplusplus

 extern "C" {

#endif



#ifdef __cplusplus

}

#endif

#endif /* __MAIN_H */

Bild 5: Codeansicht main.h

Fügen Sie folgende Zeilen in main.cpp hinzu:

…

/* Private function prototypes -----------------------------------------------*/

#ifdef __cplusplus

extern "C" {

#endif

void SystemClock_Config(void);

static void MX_GPIO_Init(void);

#ifdef __cplusplus

}

#endif

Bild 6: Codeansicht main.cpp

Bereinigen Sie das Projekt und die Fehler.

Erstellen Sie das Projekt; es sollten keine Fehler mehr auftreten.
Mögliche Warnhinweise sind dennoch zu prüfen.

Weiterführende Informationen

MicroConsult Training & Coaching zum Thema Mikrocontroller

MicroConsult Training & Coaching zur C++ Programmierung

MicroConsult Fachwissen zum Thema Mikrocontroller

Veröffentlicht von

Thomas Batt

Thomas Batt

Thomas Batt studierte nach seiner Ausbildung zum Radio- und Fernsehtechniker Nachrichtentechnik. Seit 1994 arbeitet er kontinuierlich in verschiedenen Branchen und Rollen im Bereich Embedded-/Realtime-Systementwicklung. 1999 wechselte Thomas Batt zur MicroConsult GmbH. Dort verantwortet er heute als zertifizierter Trainer und Coach die Themenbereiche Systems/ Software Engineering für Embedded-/Realtime-Systeme sowie Entwicklungsprozess-Beratung.