STM32 mit der Standart IDE Eclipse und CubeMX: Unterschied zwischen den Versionen

Aus Nicki Wiki
Zur Navigation springen Zur Suche springen
Zeile 32: Zeile 32:
  CubeMX Projekt:  STM32F407G_CubeMX
  CubeMX Projekt:  STM32F407G_CubeMX
  Eclipse Projekt: STM32F407G_Eclipse
  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
'''Den kompletten Inhalt Kopieren und ggf. ersetzen!'''
Kopieren Alle
VON
NACH STM32F407G_Eclipse\system\src\stm32f4xx
STM32F407G_CubeMX\Drivers\STM32F4xx_HAL_Driver\Inc
NACH
STM32F407G_Eclipse\system\include\stm32f4xx


Im Ordner STM32F407G_Eclipse\system\src\cmsis
VON
Löschen „system_stm32f4xx.c“ und „vectors_stm32f4xx.c“
STM32F407G_CubeMX\Drivers\STM32F4xx_HAL_Driver\Src
NACH
STM32F407G_Eclipse\system\src\stm32f4xx


VON STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\
VON
Kopieren system_stm32f4xx.c
STM32F407G_CubeMX\Drivers\CMSIS\Include
NACH STM32F407G_Eclipse\system\src\cmsis
NACH
STM32F407G_Eclipse\system\include\cmsis


VON STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\gcc\
VON
Kopieren startup_stm32f407xx.s
STM32F407G_CubeMX\Src
NACH STM32F407G_Eclipse\system\src\cmsis
NACH
STM32F407G_Eclipse\src


Im Ordner STM32F407G_Eclipse\system\include\cmsis
VON
Löschen „system_stm32f4xx.h“ und  „stm32f4xx.h“
STM32F407G_CubeMX\Inc
NACH
STM32F407G_Eclipse\include


VON STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Include
'''Einzelne Dateien kopieren ggf. ersetzen:'''
Kopieren „system_stm32f4xx.h“, „stm32f4xx.h“ und „stm32f407xx.h“
system_stm32f4xx.c VON  
NACH STM32F407G_Eclipse\system\include\cmsis
STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\
NACH
STM32F407G_Eclipse\system\src\cmsis


VON STM32F407G_CubeMX\Drivers\CMSIS\Include
startup_stm32f407xx.s VON
Kopieren Alle (ggf. ersetzen)
STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\gcc\
NACH STM32F407G_Eclipse\system\include\cmsis
NACH
STM32F407G_Eclipse\system\src\cmsis


Im Ordner STM32F407G_Eclipse\src
system_stm32f4xx.h, stm32f4xx.h, stm32f407xx.h VON
Löschen Alle
STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Include
NACH
STM32F407G_Eclipse\system\include\cmsis


Im Ordner STM32F407G_Eclipse\include
'''Alles in folgenden Ordner Löschen:'''
Löschen Alle
STM32F407G_Eclipse\src


VON STM32F407G_CubeMX\Src
STM32F407G_Eclipse\include
Kopieren Alle
NACH STM32F407G_Eclipse\src


VON STM32F407G_CubeMX\Inc
'''Einzelne Dateien Löschen:'''
Kopieren Alle
„system_stm32f4xx.c“ und „vectors_stm32f4xx.c“ LÖSCHEN
NACH STM32F407G_Eclipse\include
STM32F407G_Eclipse\system\src\cmsis
 
„system_stm32f4xx.h“ und  „stm32f4xx.h“ LÖSCHEN
STM32F407G_Eclipse\system\include\cmsis


Script Linux/Cygwin
Script Linux/Cygwin

Version vom 7. Dezember 2017, 07:12 Uhr

Dieses Tutorial zeigt wie die Hardwarekonfiguration von CubeMX in der Standard IDE Eclipse genutzt werden kann. Voraussetzung ist die Einrichtung von Eclipse nach dem Tutorial STM32 programmieren und debuggen mit der Standard IDE Eclipse. Das Discovery-Board: STM32F407G-DISC1 dient wieder als Beispiel.

CubeMX Projekt erstellen

Download und Installation von CubeMX. Im Anschluss wird CubeMX gestartet und entsprechend für sein Chip oder Board Einstellungen vorgenommen.
In CubeMX Project -> Settings… -> Project Namen vergeben, hier STM32F407G_CubeMX und den Speicherort Project Location bestimmen.
Unter Toolchain/IDE im Dropdown-Menü Other Toolchain (GPDSC) auswählen und mit OK bestätigen.

Datei:Beispiel.jpg

Der Code wird unter Project –> Generate Code generiert. Entweder man geht direkt über die Option Open Folder oder navigiert manuell in das Projektverzeichnis.

Eclipse Projekt erstellen

Vor der Erstellung des Projektes müssen noch die GNU MCU Eclipse Windows Build Tools heruntergeladen und installiert werden.
Und in Eclipse Window -> Preferences -> C/C++ -> Build -> Global Tools Path unter Build tools folder: der Pfad bis zum bin Ordner von den zuvor installierten GNU MCU Eclipse Windows Build Tools eingetragen werden. Mit OK bestätigen.

Datei:Beispiel.jpg

In Eclipse File -> New -> C Project unter Project type: -> Executable -> Hello World ARM Cortex-M C/C++ Projekt -> Cross Arm GCC auswählen.

Datei:Beispiel.jpg

Die entsprechenden Werte bei Prozessor core:, Clock (Hz):, Flash size (kB):, RAM size (kB), Use system calls: und Trace output: eintragen bzw. auswählen. Einen Projektnamen unter Project name: eintragen, hier STM32F407G_Eclipse. Weiter mit Next.

Datei:Beispiel.jpg Datei:Beispiel.jpg Datei:Beispiel.jpg

Danach Next -> Next -> Next -> Finish.

CubeMX Projekt in Eclipse Projekt integrieren

Jetzt müssen die mit CubeMX erstellten Bibliotheken (.h und .c Datein) in das Eclipse Projekt kopiert werden.

CubeMX Projekt:  STM32F407G_CubeMX
Eclipse Projekt: STM32F407G_Eclipse

Den kompletten Inhalt Kopieren und ggf. ersetzen! VON

STM32F407G_CubeMX\Drivers\STM32F4xx_HAL_Driver\Inc	

NACH

STM32F407G_Eclipse\system\include\stm32f4xx

VON

STM32F407G_CubeMX\Drivers\STM32F4xx_HAL_Driver\Src

NACH

STM32F407G_Eclipse\system\src\stm32f4xx

VON

STM32F407G_CubeMX\Drivers\CMSIS\Include

NACH

STM32F407G_Eclipse\system\include\cmsis

VON

STM32F407G_CubeMX\Src

NACH

STM32F407G_Eclipse\src

VON

STM32F407G_CubeMX\Inc

NACH

STM32F407G_Eclipse\include

Einzelne Dateien kopieren ggf. ersetzen: system_stm32f4xx.c VON

STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\

NACH

STM32F407G_Eclipse\system\src\cmsis

startup_stm32f407xx.s VON

STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\gcc\

NACH

STM32F407G_Eclipse\system\src\cmsis

system_stm32f4xx.h, stm32f4xx.h, stm32f407xx.h VON

STM32F407G_CubeMX\Drivers\CMSIS\Device\ST\STM32F4xx\Include

NACH

STM32F407G_Eclipse\system\include\cmsis

Alles in folgenden Ordner Löschen:

STM32F407G_Eclipse\src
STM32F407G_Eclipse\include

Einzelne Dateien Löschen: „system_stm32f4xx.c“ und „vectors_stm32f4xx.c“ LÖSCHEN

STM32F407G_Eclipse\system\src\cmsis

„system_stm32f4xx.h“ und „stm32f4xx.h“ LÖSCHEN

STM32F407G_Eclipse\system\include\cmsis

Script Linux/Cygwin

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/