Anhang

 


Download Quellcode




Adresse Subversion:
https://sew-bus-sensors-subsystem.googlecode.com/svn/trunk


Doxygen-Quellcodedokumentation




Einrichten einer C/C++-Entwicklungsumgebung für das STM32F4-Discovery-Board


Tutorial Download

Inhalt

1 Getestete Systemumgebung. - 1 -

2 Benötigte Ausrüstung. - 2 -

3 Einrichten der Entwicklungsumgebung. - 3 -

3.1 Einrichten eines Beispielprojekts. - 4 -

3.2 Projekt übertragen. - 8 -

3.3 Entwicklungsumgebung zur Unterstützung von C++ einrichten. - 11 -


1         Getestete Systemumgebung

Getestete Systemumgebungen:

Microsoft Windows XP SP3
Intel Pentium III mobile 800 Mhz
256 MB RAM

Microsoft Windows 7 x86
Intel Centrino T6400 2mal 2,2Ghz
4096 MB RAM

 

2         Benötigte Ausrüstung

-          STM32F4-Discovery-Platine

-          ST-LINK-USB-Treiber (Version 1.0!), herunterladbar auf der Website von STMicroelectronics: http://www.st.com/internet/evalboard/product/219866.jsp

-          „STM32F4DISCOVERY firmware package“ mit Beispielprojekten, herunterladbar auf der Website von STMicroelectronics: http://www.st.com/internet/evalboard/product/252419.jsp

-          MDK ARM KEIL µVision® 4, herunterladbar auf der Website von KEIL nach einer kostenlosen Registrierung: https://www.keil.com/download/product

3         Einrichten der Entwicklungsumgebung

Um eine Kommunikation zwischen der Entwicklungsumgebung und dem STM32F4-Discovery-Board herzustellen, ist eine Schnittstelle zur Programmierung und Beschreibung des STM32F4-Prozessors notwendig.

 Das STM32F4-Discovery-Board verfügt über einen Controller zur Programmierung des eigentlichen Prozessors, somit entfällt die Nutzung eines zusätzlichen Programmiergerätes. STMicroelectronics bietet dazu die ST-Link-Treiber an, welche die Kommunikation mit dem STM32F4-Prozessor ermöglichen.

In diesem Tutorial wird nur die Einrichtung der von ARM bereitgestellten IDE (MDK ARM KEIL µVision® 4) beschrieben, da diese bereits über die ST-Link-Treiber verfügt und somit weitere Einrichtungsschritte wegfallen.

 Installieren Sie nun die ST-LINK-Treiber und schließen sie anschließend das STM32F4DISCOVERY-Board an Ihren Rechner an. Windows sollte die Treiber nun automatisch installieren.

 

3.1      Einrichten eines Beispielprojekts

Starten Sie KEIL µVision® 4 und wählen Sie im Projektpunkt

Project -> New µVision Project….

Nachdem Sie den Speicherort Ihres Projektes gewählt haben, können Sie die genutzte CPU auswählen. Wählen Sie den auf dem STM32F4-Discovery verlöteten STM32F407VG-Prozessor von STMicroelectronics aus.

Anschließend bietet KEIL µVision® bereits die Möglichkeit, automatische eine zu dem Prozessor passende Startup-Datei dem Projekt hinzuzufügen. Bestätigen Sie die Abfrage mit Ja.

Um nun ein lauffähiges Projekt zu erzeugen, müssen Sie noch die ST Library dem Projekt hinzufügen.

Sie können sich die entsprechenden Dateien aus den Beispielprojekten der STM32F4DISCOVERY firmware package kopieren und an Ihr Programm anpassen.

Für die Grundfunktionalität müssen Sie folgende Dateien in Ihr Projektverzeichnis kopieren:

-          system_stm32f4xx.c: Übernimmt die Einstellung des Systemtaktes

-          stm32f4xx_conf.h: Konfiguration der genutzten Libraries

-          stm32f4xx_it.h: Interrupt-Handler-Routinen

-          stm32f4xx_it.c: Definition der Interrupt-Handler-Routinen

-          startup_stm32f4xx.s: Assembler-Startup-Datei. Kopieren Sie diese Datei in Ihr Projekt, falls dies noch nicht durch KEIL geschehen ist.

 

Um externe Kommunikation zwischen Peripheriegeräten und dem STM32F4 zu ermöglichen, benötigen Sie zunächst die die „Standard Peripheral Library“. Eine passende Version für den STM32F4 befindet sich im Unterordner „\Libraries\STM32F4xx_StdPeriph_Driver“. Fügen Sie die *.c-Dateien Im Verzeichnis „src“ Ihrem Projekt hinzu. Um die Standardfunktionen des STM32F4DISCOVERY zu nutzen, müssen Sie folgende Dateien Ihrem Projekt hinzufügen:

-          misc.c

-          stm32f4xx_exti.c

-          stm32f4xx_gpio.c

-          stm32f4xx_rcc.c

-          stm32f4xx_spi.c

-          stm32f4xx_syscfg.c

 

Fügen Sie weiterhin folgende Include-Pfade Ihrem Projekt hinzu, indem Sie unter Project -> Options for Target ‘Target 1‘ auswählen. Achten Sie darauf, dass in dem linken Projekt-Menü „Target 1“ ausgewählt ist. Unter dem Reiter C/C++ müssen Sie nun folgende Konfigurationen vornehmen:

-          Fügen Sie „USE_STDPERIPH_DRIVER STM32F4XX“ als Preprocessor-Definition hinzu.

-          Konfigurieren Sie die Include-Pfade, indem sie folgende vier Pfade hinzufügen:

-          Den Projektpfad Libraries\STM32F4xx_StdPeriph_Driver\inc

-          CMSIS\Include

-          Libraries\CMSIS\ST\STM32F4xx\Include

 

Je nach Anwendungszweck können Sie nun verschiedene Funktionen des STM32F4DISCOVERY-Boards nutzen. Um die gewünschten Funktionen zu nutzen, müssen Sie je nach Zweck folgende Dateien Ihrem Projekt hinzufügen:

-          stm32f4_discovery.h und .c: Erlaub Zugriff auf die LEDs und Buttons

-          stm32f4_discovery_lis302dl.h und .c: Erlaubt Zugriff auf dem MEMS LIS302DL-Beschleunigungssensor, welcher über SPI angebunden ist.

-          stm32f4_discovery_audio_codec.h und .c: Erlaubt Zugriff auf den Audio-Port des STM32F4DISCOVERY

 

3.2      Projekt übertragen

Wenn das Projekt erfolgreich gebaut werden konnte, können Sie Ihr Programm auf die STM32F4-Platine übertragen. Dazu ist zuvor eine einmalige Konfiguration notwendig:

-          Wählen Sie Project -> Options for Target „Target 1“, um die Projektkonfiguration zu öffnen

-          Im Reiter Linker wählen Sie „Use Memory Layout from Target Dialog“

 

-          Im Reiter Debug wählen Sie den ST-Link Debugger. Klicken Sie anschließend auf Settings und wählen Sie bei Port SW aus. Wenn das Einrichten der STM32F4DISCOVERY-Platine erfolgreich war und diese mit dem Rechner verbunden ist, wird nun in dem Bereich SW Device ein Gerät angezeigt

 

-          Im Reiter Utilities wählen Sie ebenfalls den ST-Link-Debugger. Klicken Sie nun auf Settings, um den Programmieralgorithmus festzulegen und wählen Sie in dem sich nun öffnenden Fenster den Reiter Flash Download und klicken Sie auf Add. Wählen Sie in der Liste den STM32F4xx Flash aus und bestätigen Sie Ihre Auswahl mit Add.

 

 

Schließen Sie nun alle geöffneten Menüs und übertragen Sie Ihr erstelltes Programm auf das STM32F4DISCOVERY-Board. Sie sollten nun in der Lage sein, das übertragene Projekt zu starten und zu debuggen, indem sie nach erfolgter Übertragung in den Debug-Modus wechseln.

 

In der aktuellen Konfiguration wird C++-Programmcode nicht unterstützt. Mit der aktuellen Konfiguration ist nur ANSI C-Programmcode möglich!

3.3      Entwicklungsumgebung zur Unterstützung von C++ einrichten

Der Linker muss zur Nutzung der vollständigen C Standardbibliothek konfiguriert werden. Die C-Standardbibliothek bietet die grundlegenden Funktionen der Programmiersprache, wie beispielsweise mathematische Operationen, Speicherverwaltung und Ein- und Ausgabefunktionen. Im Normalfall nutzt KEIL µVision® die schlanke, nicht standardgemäße C-Standardbibliothek MicroLIB, welche sich gegenüber der vollständigen Standardbibliothek dadurch auszeichnet, besonders codegrößenoptimiert zu arbeiten. Durch die Verlinkung eines C-Programmes mit der MicroLIB lässt sich somit eine Größenoptimierung von bis zu 80% erreichen.

Leider unterstützt die MicroLIB kein C++, somit muss bei der Nutzung von C++-Code die MicroLIB deaktiviert werden. Beachten Sie, dass Sie die Floating-Point-Hardware abschalten müssen, da das Programm ansonsten noch vor Programmstart direkt in eine HardFault-Fehlerbehandlungsroutine springt.