Durch den zusätzlichen Programmcode verlangsamt sich die Ausführungsgeschwindigkeit der analysierten Anwendung erheblich. Man sollte Programme daher nur im Debug-Modus kompilieren, wenn man sie auch wirklich debuggen möchte. Um den Debug-Modus zu starten, klicken Sie einfach auf das Icon mit dem Käfer (entsprechend der Suche nach einem Bug).
Der Debugger braucht einige Zeit, um zu starten. Im Debug-Modus (Abbildung 9) erschlägt die Entwicklungsumgebung Einsteiger dann mit ziemlich ausführlichen Informationen; in der Mitte finden Sie den Programmcode in einem kleinen Fenster. Hier sehen Sie grün hinterlegt, welches Kommando der Debugger gerade ausführt.
Starten Sie den Debugger das erste Mal, setzt die Anwendung automatisch einen Breakpoint auf die erste Zeile des Programmcodes. Ein solcher Breakpoint unterbricht die Ausführung des Programms, ähnlich wie die Pause-Taste an einem Mediaplayer. Die Werte aller Variablen bleiben dabei erhalten, was erlaubt, den Programmcode und die aktuellen Variablen während der Ausführung zu analysieren. Um einen weiteren Breakpoint zu setzen, müssen Sie vor der Zeilennummer doppelt in den roten Bereich klicken.
Setzen Sie nun einen neuen Breakpoint auf das Kommando i++;. Momentan sollte das Programm immer noch in der ersten Zeile angehalten sein. Um es weiterlaufen zu lassen, drücken Sie die Taste [F8] oder das Play-Icon in der Werkzeugleiste. Das Programm läuft nun bis zum neuen Breakpoint auf der Zeile i++; weiter.
Jetzt sehen Sie sich den Bereich oben rechts etwas genauer an: Der Reiter Variables listet alle Variablen auf, die das Programm momentan verwendet. In der ersten Zeile finden Sie die Variable i. Drücken Sie nun abermals [F8], sehen Sie, wie sich der Zustand der LED ändert und sich der Wert von i erhöht.
Der kurze Blick in die Funktionsweise des Debuggers demonstriert die mächtigen Möglichkeiten zur Fehlersuche in der Entwicklungsumgebung. Mit dem Debugger steigen Sie bei Bedarf auch in die unter Ihrem eigenen Programm liegenden Software-Schichten ab. Diese Funktion benötigen Sie etwa dann, wenn Sie nicht wissen, warum eine von Ihnen verwendete Funktion der Bibliothek sich nicht so verhält, wie Sie es erwarten. Mit dem Debugger werfen Sie zudem einen Blick in die einzelnen Hardware-Register des Mikrocontrollers, was bei bestimmten Fehlersituationen sehr nützlich sein kann.
Fazit
Die STM32 Mikrocontroller-Familie hat so viele Mitglieder, dass Sie sicher für jeden Anwendungsfall den richtigen Controller finden. Um deren Möglichkeiten voll nutzen zu können, benötigen Sie eine IDE, die alle Funktionen voll unterstützt. Mit der System Workbench treffen Sie in jedem Fall eine gute Wahl.
Erfüllt die Workbench dennoch nicht Ihre Anforderungen, dann werfen Sie einen Blick auf die ST-Homepage: Dort gibt es eine Übersicht aller zur Verfügung stehenden IDEs für die STM32-Familie. Alles in allem ist das Nucleo-Board mit der System Workbench eine gute Kombination, um in die Programmierung moderner Mikrocontroller einzusteigen.
Der Autor
Martin Mohr entwickelte schon früh eine Vorliebe für alles, was blinkt. Eine Ausbildung zum Elektroniker verstärkte das noch. Nach einem Informatikstudium entwickelte er überwiegend Java-Applikationen. Mit dem Raspberry Pi erwachte die alte Liebe zur Elektronik wieder.
Infos
- Nucleo F401RE: https://www.st.com/en/evaluation-tools/nucleo-f401re.html
- Bezugsquelle: https://www.reichelt.de/nucleo-64-arm-cortex-m4f-stm32-f4-serie-nucleo-f401re-p154269.html
- System Workbench: http://www.openstm32.org/HomePage
- System Workbench herunterladen: http://www.openstm32.org/Downloading%2Bthe%2BSystem%2BWorkbench%2Bfor%2BSTM32%2Binstaller
- STM32CubeMX: https://www.st.com/en/development-tools/stm32cubemx.html






