STM32 programmieren und debuggen mit C++: Unterschied zwischen den Versionen
Nick (Diskussion | Beiträge) |
Julia (Diskussion | Beiträge) |
||
| (7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
Dieses Tutorial zeigt wie mit der Standard IDE Eclipse Mikrocontrollern von [http://www.st.com/content/st_com/en.html STMicroelectronics] mit C++ programmiert und debbugt werden kann. Voraussetzung ist die | Dieses Tutorial zeigt wie mit der Standard IDE Eclipse Mikrocontrollern von [http://www.st.com/content/st_com/en.html STMicroelectronics] mit C++ programmiert und debbugt werden kann. Voraussetzung ist die Einrichtung von Eclipse nach dem Tutorial [https://wiki.xnick.de/index.php/STM32_programmieren_und_debuggen_mit_der_Standard_IDE_Eclipse STM32 programmieren und debuggen mit der Standard IDE Eclipse].<br /> | ||
Ebenfalls wird auch hier das Discovery-Board: [http://www.st.com/en/evaluation-tools/stm32f4discovery.html STM32F407G-DISC1] verwendet. | Ebenfalls wird auch hier das Discovery-Board: [http://www.st.com/en/evaluation-tools/stm32f4discovery.html STM32F407G-DISC1] verwendet. | ||
== Projektbeispiel == | == Projektbeispiel == | ||
In Eclipse '''File''' -> '''New''' -> '''C++''' -> '''STM32F4xx C/C++ Project''' auswählen. | In Eclipse '''File''' -> '''New''' -> '''C++''' -> '''STM32F4xx C/C++ Project''' auswählen. | ||
Einen Projektnamen vergeben | Einen Projektnamen vergeben - hier '''Project name:''' HelloWorld. | ||
Den | Den Zielprozessor auswählen - hier Target '''processor settings:''' STM32F407. | ||
[[Datei: | [[Datei:stm32_c++_project_processor_settings.png|300px]] | ||
Danach '''Next''' -> '''Next''' -> '''Next'''. | 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 | Jetzt den Toolchain Pfad bis Ordner "bin" angeben, hier Toolchain path: D:\Programme\eclipse\GNU_ARM_Toolchain\5.4 2016q3\bin | ||
[[Datei: | [[Datei:stm32_c++_project_gnu_toolchain.png|300px]] | ||
und mit Finish bestätigen. | |||
== Debugging == | == Debugging == | ||
Siehe [https://wiki.xnick.de/index.php/ | Siehe [https://wiki.xnick.de/index.php/STM32_programmieren_und_debuggen_mit_der_Standard_IDE_Eclipse STM32 programmieren und debuggen mit der Standard IDE Eclipse]. | ||
== Boardkonfiguration == | == Boardkonfiguration == | ||
Die | 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. | 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. | Im Dropdown Menü '''Toolchain/IDE''' -> '''Other Toolchain''' auswählen und mit '''OK''' bestätigen. | ||
[[Datei: | [[Datei:stm32_c++_cubemx_prject_settings.png|300px]] | ||
Jetzt ist das Projekt unter '''Project''' –> '''Generate Code''' zu erzeugen. Im Anschluss mit '''Open Folder''' den Projekt-Ordner im Explorer öffnen | 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). | 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). | ||
| Zeile 34: | Zeile 34: | ||
static void MX_GPIO_Init(void) | static void MX_GPIO_Init(void) | ||
[[Datei: | [[Datei:stm32_c++_main.png|300px]] | ||
Die '''main.h''' kann natürlich umbenannt werden (z.B. '''_initialize_hardware.h''') damit es nicht zu Missverständnissen kommt. | Die '''main.h''' kann natürlich umbenannt werden (z.B. '''_initialize_hardware.h'''), damit es nicht zu Missverständnissen kommt. | ||
== Quellen == | == Quellen == | ||
Aktuelle Version vom 15. März 2018, 16:11 Uhr
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 STM32 programmieren und debuggen 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 Zielprozessor auswählen - hier Target processor settings: STM32F407.
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
und mit Finish bestätigen.
Debugging
Siehe STM32 programmieren und debuggen 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.
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)
Die main.h kann natürlich umbenannt werden (z.B. _initialize_hardware.h), damit es nicht zu Missverständnissen kommt.