ST kaufte das Atollic TrueStudio auf, reduzierte es auf STM32 Controller und machte daraus dann die Cube IDE, indem Funktionen von CubeMX integriert wurden. Wer das Atollic Truestudio bereits kennt, wird sich daher in der Cube IDE sofort zurecht finden.
Download: STM32 Cube IDE
Die Cube IDE kann Projekte von der System Workbench importieren, umgekehrt geht es nicht.
Wenn man ein neues Projekt startet und der Dialog "Target Selection" komplett leer bleibt, muss man die IDE mit folgendem Befehl starten: /usr/bin/env GDK_BACKEND=x11 ./stm32cubeide
Bei Verbindungsproblemen kann es hilfreich sein, den Bootloader mittels Boot0=High und Reset-Impuls zu starten, da dieser die SWD Schnittstelle nicht deaktiviert.
Bei Verbindungsproblemen kann es hilfreich sein, den Bootloader mittels Boot0=High und Reset-Impuls zu starten, da dieser die SWD Schnittstelle nicht deaktiviert. Eventuell hilft auch ein Firmware-Update des ST-Link Adapters.
Modus | Beschreibung | Einschränkung |
---|---|---|
Connect Under Reset | Die Verbindung wird während des Reset-Impulses geöffnet. | Wenn die NRST Leitung nicht mit dem Programmieradapter verbunden ist, muss man den Reset Knopf manuell gedrückt halten und im richtigen Moment loslassen. |
Software System Reset | Die SWD Schnittstelle wird ohne Hardware-Reset geöffnet und dann ein Reset-Kommando abgesetzt. | Funktioniert nicht, wenn das Programm die SWD Schnittstelle deaktiviert oder in einen Schlafmodus gegangen ist. |
Die Cube IDE benutzt beim Debuggen standardmäßig die Option "Connect Under Reset".
Klicke mit der rechten Maustaste auf den kleinen Pfeil neben dem Käfer, dann auf "Debug Configurations...". Gehe in dem folgenden Dialog in den Debugger Tab, wo du die Einstellung ändern kannst:
Neben dem grünen Käfer ist ein kleiner Pfeil, der nach unten Zeigt. Klicke darauf und dann auf "Debug Configurations...". Aktiviere im Debugger Tab 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 im nächsten Dialog 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 sollten in dem "SWV ITM Data Console" Fenster alle Trace Meldungen erscheinen, die das Programm auf dem Mikrocontroller erzeugt.
Nun öffne dieses "Configuration Script" im Texteditor und hänge ganz unten zwei Zeilen an:
tpiu config internal /tmp/debug.txt uart off 8000000 itm port 0 on
Bei der nächsten debug Sitzung werden die Trace Meldungen dann in die Datei /tmp/debug.txt geschrieben. Zur fortlaufenden Anzeige benutze ich unter Windows den Befehl tail -f debug.txt in einem CygWin Fenster:
Die Datei enthält zwischen den Buchstaben nicht darstellbare Steuerzeichen. Falls tail diese unerwünscht anzeigt, kann man sie so heraus filtern: tail -f debug.txt | tr -dc '[:print:]\n'
Man kann die Schnittstelle auch so konfigurieren, dass sie die Meldungen im gleichen Format ausgibt, wie ein normaler serieller Port:
monitor tpiu config external uart off 8000000 2000000 itm port 0 on
Die Zahl 8000000 muss der CPU Taktfrequenz entsprechen, die Zahl 2000000 ist die serielle Baudrate - maximal 1/4 des CPU Taktes. Nun kann man die Ausgabe mit einem gewöhnlichen USB-UART Adapter empfangen.