STM32 mit der Standart IDE Eclipse und CubeMX
Kurzanleitung
Nutzen der von CubeMX von STM für die Standard Eclipse IDE.
Voraussetzung: TuT_STM32_eclipse_arm_openOCD Beispiel-Board: STM32F407G-DISC1
CubeMX Projekt erstellen
GNU ARM Eclipse Build Tools https://github.com/gnuarmeclipse/windows-build-tools/releases
CubeMX starten und wie gewünscht für sein Board Konfigurieren Project -> Settings … -> Project Namen vergeben Speicherort auswählen Toolchain / IDE: Other Toolchain
OK Project –> Generate Code
GNU ARM Eclipse Build Tools Herunterladen und Installieren
Eclipse Projekt erstellen
Window -> Preferences -> C/C++ -> Build -> Global Tools Path Build tools folder: Pfad zu den zuvor installierten build tools (bin Ordner)
OK
Neues Projekt erstellen: File -> New -> C Project -> Hello World ARM Cortex-M C/C++ Project Projektnamen vergeben
Next -> Next Vendor CMSIS name: stm32f4xx
Finish Finish
CubeMX Projekt in Eclipse Projekt integrieren
CubeMX Projekt: STM32F407G_CubeMX Eclipse Projekt: STM32F407G_Eclipse
VON STM32F407G_CubeMX\Drivers\STM32F4xx_HAL_Driver\Inc Kopieren Alle NACH STM32F407G_Eclipse\system\include\stm32f4xx
VON STM32F407G_CubeMX\Drivers\STM32F4xx_HAL_Driver\Src Kopieren Alle NACH STM32F407G_Eclipse\system\src\stm32f4xx
Im Ordner STM32F407G_Eclipse\system\src\cmsis Löschen „system_stm32f4xx.c“ und „vectors_stm32f4xx.c“
VON STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\ Kopieren system_stm32f4xx.c NACH STM32F407G_Eclipse\system\src\cmsis
VON STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\gcc\ Kopieren startup_stm32f407xx.s NACH STM32F407G_Eclipse\system\src\cmsis
Im Ordner STM32F407G_Eclipse\system\include\cmsis Löschen „system_stm32f4xx.h“ und „stm32f4xx.h“
VON STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Include Kopieren „system_stm32f4xx.h“, „stm32f4xx.h“ und „stm32f407xx.h“ NACH STM32F407G_Eclipse\system\include\cmsis
VON STM32F407G_CubeMX\Drivers\CMSIS\Include Kopieren Alle (ggf. ersetzen) NACH STM32F407G_Eclipse\system\include\cmsis
Im Ordner STM32F407G_Eclipse\src Löschen Alle
Im Ordner STM32F407G_Eclipse\include Löschen Alle
VON STM32F407G_CubeMX\Src Kopieren Alle NACH STM32F407G_Eclipse\src
VON STM32F407G_CubeMX\Inc Kopieren Alle NACH STM32F407G_Eclipse\include
Eclipse Projekt konfigurieren
Rechte Maustaste auf das Project -> Refresh Projekt -> ldscripts -> mem.ld Anpassen der Speicheradressen Flash: 0x08000000, LENGTH = 1024K RAM: 0x20000000, LENGTH = 128K CCMRAM: 0x10000000, LENGTH = 64K
Rechte Maustaste auf das Projekt -> Properties -> C/C++ Build -> Settings
Cross ARM C Compiler -> Preprocessor
Defined symbols (-D) -> auf das Plus Symbol
Den Namen (STM32F407xx) der Hinzugefügten Datei „stm32f407xx.h“ eintragen
Probleme
Kompiliert erfolgreich aber „Warnings“ verschwinden nicht: Rechte Maustaste auf Projekt -> C/C++ General -> Paths and Symbols -> Includes Add… -> Workspace… STM32F407G_Eclipse -> system -> include -> sytm32f4xx
Error „multiple definition of …“: Löschen von Header template Dateien z.B. system -> include -> stm32f4xx löschen aller Headerdateien mit der Endung „template“
Eclipse erkennt startup-script „startup_stm32f407xx.s“ nicht: - Rechte Maustaste auf „startup_stm32f407xx.s“ -> Rename - das „s“ am Ende groß schreiben -> OK
Debuggen
Siehe STM32 programmieren und debuggen mit der Standard IDE Eclipse.
Quellen
http://gnuarmeclipse.github.io/windows-build-tools/download/