STM32 Anleitungen

Hinweise zur STM32 Cube IDE

Als Ergänzung zu meiner STM32 Anleitung gebe ich hier Tipps zum Umgang mit der "STM32 Cube IDE". Das ist eine Entwicklungsumgebung für STM32 Mikrocontroller.

Früher gab es das preisgünstige "Atollic TrueStudio", welches fast alle ARM Controller unterstützte. Die Firma ST hat das Produkt aufgekauft und kostenlos veröffentlicht - allerdings reduziert auf STM32 Controller. Seit dem wurde das "Atollic TrueStudio" nicht mehr weiter entwickelt. Inzwischen hat ST seine neue "STM32 Cube IDE" veröffentlicht, welche offensichtlich eine Weiterentwicklung des ehemaligen "Atollic TrueStudio" ist. Sie ist ebenfalls kostenlos.

Download: STM32 Cube IDE

Unterschiede zu anderen IDE

Die drei Entwicklungsumgebungen System Workbench, Atollic TrueStudio und STM32 Cube IDE sind sehr ähnlich, weil sie alle auf Eclipse und dem gcc Compiler basieren. Ich habe hier aufgeschrieben, welche Unterschiede mir aufgefallen sind:
 System WorkbenchTrueStudio/CubeIDE
Projekt Assistentunterstützt Cube HAL, die alte SPL und Projekte ohne diese "Firmware".erzwingt Cube HAL.
Die IDE kann andere Projekte nur öffnen und bearbeiten.
Zustandstabile Arbeitsumgebung, wird ordentlich gepflegt wirdfunktioniert, wird aber ständig umgestaltet
DebuggerOpenOCDgdb
Trace Meldungen (ITM Messages)werden in eine Datei geschriebenwerden in der IDE als Text angezeigt
Tracing Funktionenneinja

Es gibt da noch ein GNU MCU Eclipse Plugin, das habe ich aber nicht ausprobiert.

Hinweise für Linux

Bei Linux werden die Pakete libc6:i386 und lib32ncurses5 benötigt, damit es sowohl 64bit als auch 32bit Programme ausführen kann. Außerdem kann es notwendig sein die Verwendung der alten GTK-2.0 Library anstelle von GTK-3.0 zu forcieren, damit Dialogfenster korrekt dargestellt werden. Man erreicht das durch folgenden Eintrag in der Datei ~/.profile:
export SWT_GTK3=0

Nach der Installation funktioniert der Eintrag im Startmenü möglicherweise nicht. Zum Start muss das Programm /opt/st/stm32cubeide_1.0.0/stm32cubeide ausgeführt werden.

Programm übertragen

Die "STM32 Cube IDE" hat derzeit keine Funktion, um das Programm einfach nur auf den Mikrocontroller zu übertragen. Benutze stattdessen den eingebauten Debugger oder ein externes Programm, zum Beispiel den STM32 Cube Programmer.

Debuggen

Um den Debugger zu starten, klickt man auf den grünen Käfer. Dabei werden Änderungen am Programm automatisch auf den Mikrocontroller übertragen.

Bei Verbindungsproblemen kann es hilfreich sein, den Bootloader mittels Boot0=High und Reset zu aktivieren, da dieser die SWD Schnittstelle nicht deaktiviert.

Trace Meldungen ausgeben

Alle ARM Controller ab Cortex M3 aufwärts können Trace Meldungen (ITM, Instrumentation Trace Messages) auf der SWO Leitung ausgeben. Die "STM32 Cube IDE" kann diese Meldungen folgendermaßen anzeigen:

Neben dem grünen Käfer ist ein kleiner Pfeil, der nach unten Zeigt. Klicke darauf und dann auf "Debug Configurations...". Aktiviere dort die rot markierte Option und stelle die Taktfrequenz des Mikrocontrollers ein:

Nun starte den Debugger durch Klick auf den grünen Käfer. Das Programm pausiert zunächst ganz am Anfang der main() Funktion. Jetzt gehe in das Menü Window/Show View/Other... und wähle "SWV ITM Data Console". Dieses Fenster ist zunächst leer. Klicke in der rechten oberen Ecke des Fensters auf das Werkzeug-Symbol. Schalte dort den "ITM Stimulus Port" Nummer 0 ein.

Direkt neben dem Werkzeug-Symbol ist ein roter Punkt mit der Beschriftung "Start Trace". Klicke darauf. Danach klicke am oberen Rand der IDE auf den Resume-Knopf.

Nun erscheinen in dem Fenster alle Trace Meldungen, die das Programm auf dem Mikrocontroller erzeugt.