Ich arbeite mich gerade in die CubeIDE von STM ein, bisher habe ich erfolgreich mit Keil gearbeitet. Zielsystem ist ein Blue-Pill-Board mit originalem STM32F103C8. Programmiert wird über ein ST-Link V2. Ich habe ein minimales Programm geschrieben, das zunächst nur eine LED am Pin PC13 toggeln soll. Dieser Pin ist in der Konfiguration als digitaler Output geschaltet, alle anderen Pins sind unverändert (grau). Das Kompilieren verläuft ohne Fehler und der Debugger scheint zunächst normal zu funktionieren, Single-Step ist möglich. Leider hängt er sich dann in der HAL-Initialisierung an folgender Zeile auf:
1 | __HAL_AFIO_REMAP_SWJ_DISABLE(); |
Was macht dieser Makro genau? Es sieht so aus, als ob das SWD-Interface deaktiviert wird und sich der Debugger den Ast absägt, auf dem er sitzt. Auskommentieren löst das Problem nur vorübergehend. Sobald man aber irgendetwas an der Konfiguration ändert, ist die Zeile wieder da. Gibt es eine Möglichkeit, sie permanent zu unterdrücken?