STM32 programmieren und debuggen mit der Standard IDE Eclipse: Unterschied zwischen den Versionen
Julia (Diskussion | Beiträge) |
Julia (Diskussion | Beiträge) |
||
| Zeile 56: | Zeile 56: | ||
und mit '''Finish''' bestätigen.<br /> | und mit '''Finish''' bestätigen.<br /> | ||
Auf den Hammer klicken, das Programm sollte nun erfolgreich | Auf den Hammer klicken, das Programm sollte nun erfolgreich kompilieren! | ||
== GNU MCU Eclipse OpenOCD Debugging == | == GNU MCU Eclipse OpenOCD Debugging == | ||
Aktuelle Version vom 15. März 2018, 16:14 Uhr
Es gibt verschiedene fertige IDEs um Mikrocontroller von STMicroelectronics zu programmieren, wie z.B. Attolic TrueSTUDIO, SW4STM32, IAR-EWARM oder MDK. Jedoch bieten diese IDEs mehr oder weniger Einschränkungen und/oder nerven durch Werbung. Diese Anleitung zeigt wie Mikrocontroller von STM mit der Standard Eclipse IDE C/C++ programmiert und debuggt werden kann.
Unterstützte Betriebssysteme: Windows, Linux und Mac (Unter Linux und Mac ist die Installationsanleitungen auf den jeweiligen Websites zu beachten)
In diesem Tutorial wird das Discovery-Board: STM32F407G-DISC1 von STMicroelectronics verwendet.
Downloads
Eclipse IDE C/C++
GNU MCU Eclipse plugin
GNU ARM Embedded Toolchain
GNU MCU Eclipse OpenOCD
How to install the OpenOCD binaries
ST-Link USB-Treiber
Zadig generischer USB-Treiber (Nur bei Problemen mit OpenOCD)
Die Pakete können normal installiert werden; später ist es nur wichtig, die Pfade zu kennen.
In dieser Anleitung wird alles in einem Pfad unter „D:\Programme\eclipse“ installiert und entpackt.
Eclipse Installation
Eclipse in dem gewünschten Ordnerpfad entpacken - danach kann es schon gestartet werden. Pfad für den workspace festlegen.
GNU MCU Eclipse plug-ins Installation
In der Menüleiste auf Help -> Eclipse Marketplace… - in der Suchleiste gnu arm, ab Eclipse Oxygen gnu mcu eingeben und bestätigen.
Das Plugin GNU MCU Eclipse 4.2.1 oder neuer mit install installieren; dabei sind alle Häkchen zu setzen.
Es kann vorkommen, dass die Installation über den Marketplace fehlschlägt. Eine andere Option ist die manuelle Installation.
Download GNU ARM Eclipse plug-in bzw. GNU MCU Eclipse
In der Menüleiste von eclipse: Help -> Install New Software… -> Add… -> Archive… -> das zuvor heruntergeladene zip Archiv auswählen -> OK -> alle Häkchen setzen -> Next -> Next -> Lizenz akzeptieren -> Finish.
GNU Arm Toolchain
Die heruntergeladene GNU Arm Toolchain, wenn nicht schon geschehen, installieren und den Toolchainpfad merken. Die Einrichtung erfolgt mittels des Testprojekts HelloWorld.
In Eclipse File -> New -> C Projekt unter Project type: -> STM32F4xx C/C++ Project -> Cross Arm GCC auswählen.
Einen Projektnamen vergeben - hier Project name: HelloWorld. Weiter mit Next.
Die Chip-Familie auswählen - hier Chip family: STM32F407xx.
Danach Next -> Next -> Next.
Jetzt den Toolchainpfad bis Ordner "bin" angeben, hier Toolchain path: D:\Programme\eclipse\GNU_ARM_Toolchain\5.4 2016q3\bin.
und mit Finish bestätigen.
Auf den Hammer klicken, das Programm sollte nun erfolgreich kompilieren!
GNU MCU Eclipse OpenOCD Debugging
Das GNU MCU Eclipse OpenOCD ist ein für Eclipse angepasster fork von OpenOCD, welches ein freies und offenes On-Chip-Debugging mit In-System-Programmierung und Boundary-Scan-Tests ist.
Das heruntergeladene GNU MCU Eclipse OpenOCD, wenn nicht schon geschehen, installieren und den OpenOCD Pfad merken.
In Eclipse -> Window -> Preferences -> Run/Debug -> OpenOCD auswählen.
Ab Eclipse Oxygen -> Window -> Preferences -> MCU -> Global OpenOCD Path.
Jetzt den OpenOCD Pfad bis zum Ordner "bin" eingeben, hier Folder: D:/Programme/eclipse/OpenOCD/bin und mit OK bestätigen.
In Eclipse -> Run -> Debug Configurations… Doppelklick auf GDB OpenOCD Debugging -> HelloWorld Debug Bevor debuggt werden kann muss noch die Debbuging-Konfigurationsdatei erstellt werden.
OpenOCD Debugging Konfigurationsdatei
Es muss für jeden Chip oder Discovery-Bord eine Debbuging Konfigurationsdatei auch config-Datei erstellt werden sowie die richtige Konfigurationsdatei für die Debuggingverbindung ausgewählt werden.
Als erstes ist das Discovery-Board o.ä. mit dem PC über USB zu verbinden. Im Geräte-Manager (Systemsteuerung -> Geräte-Manager) -> Anschlüsse(COM & LPT)
Doppelklick -> STMicroelectronics STLink Virtual COM Port -> Details. Unter Eigenschaften -> Hardware-IDs die ID nach USB\VID merken, hier (… 0483&PID_374B …).
In dem OpenOCD Ordner -> scripts -> interface -> stlink-v2-1.cfg öffnen und die IDs vergleichen.
Wird eine andere ST-Link Version genutzt, muss die entsprechende config Datei ausgewählt werden. Stimmen die IDs überein, ist die richtige Datei gefunden -> Dateinamen merken.
Im nächsten Schritt wird die Debbugíng Konfigurationsdatei ausgewählt.
Da hier ein Discovery-Board verwendet wird, kann das Skript unter OpenOCD -> scripts -> board -> stm32f4discovery.cfg in den Projectordner kopiert werden.
Wird ein Chip verwendet, ist aus dem "cpu" Ordner ein Skript auszuwählen. Die Datei wird jetzt an unser Board angepasst und dazu als erstes von stm32f4discovery.cfg in stm32f407g.cfg umbenannt. Danach wird die umbenannte Datei stm32f407g.cfg geöffnet und unter dem Punkt source der Dateiname der Debuggingverbindung korrigiert - hier source [find interface/stlink-v2-1.cfg].
Zurück in Eclipse -> Run -> Debug Configuration... -> GDB OpenOCD Debugging -> HelloWorld Debug
Registerkarte Debugger -> OpenOCD Setup den Dateinamen mit der Option -f für File in Config options eintragen - hier Config options: -f stm32f407g.cfg
Registerkarte Common die Option Shared file mit dem Projektnamen auswählen - hier Shared file: \HelloWorld
Mit Apply speichern oder mit Debug speichern und debuggen.
Ordnerstruktur
Nach dem entpacken und installieren der Pakete erhält man folgende Ordnerstruktur:
Probleme
OpenOCD konnte nicht starten -> Als Administrator (sudo) starten
OpenOCD startet es kommt aber zu einem Fehler -> Zadig -> starten -> Install WCID Driver
Quellen
https://launchpad.net/gcc-arm-embedded
http://gnuarmeclipse.github.io/windows-build-tools/
http://gnuarmeclipse.github.io/windows-build-tools/install/
http://gnuarmeclipse.github.io/openocd/
http://gnuarmeclipse.github.io/openocd/install/
http://gnuarmeclipse.github.io/debug/openocd/
http://gnuarmeclipse.github.io/plugins/install/