Ich habe Probleme on-chip-debugging auf einem Blue-Pill Board mit einem Fake STM32F103C8T6 zum Laufen zu kriegen.
Ich entwickle unter
- Windows 7
- STM32CubeIDE (V1.11.2)
- mit einem ST-Link V2, Firmware V2J40S7
- Treiber für ST-Link: STMicroelectronics V 2.2.0.0
Mit einem Blue-Pill Board, das vermutlich einen orginalen STM Chip hat, kriege ich das on-chip-debugging über Umwege hin. Zwar klappt es dummerweise nicht, wenn ich mit der Debugsession den GDB automatisch starten lassen will. Starte ich jedoch den GDB zuvor manuell und connecte dann remote zum GDB, dann funktioniert alles ganz wunderbar. Zumindest mit dem Blue-Pill Board, das einen orginalen STM Chip hat. Bei einem anderen billig Blue-Pill Board kriege ich den GDB nicht gestartet. Er beendet sich direkt wieder mit der Meldung: "Could not verify ST device! Abort connection."
Allerdings lässt sich der Fake Chip problemlos mit dem STM32CubeProgrammer flashen und funktioniert soweit auch erst mal: LCDs lassen sich ansteuern, Daten per USART übertragen, etc.
Jetzt möchte ich aber dennoch hinkriegen, dass ich irgendwie auf diesen Fake Chips debuggen kann. Irgendwo habe ich gelesen, dass das möglich sei, wenn man in STM32CubeIDE statt des default GDB (ST-LINK GDB server) als Alternative den OpenOCD verwendet. Jedoch kriege ich das einfach nicht zum Laufen. Es scheitert wohl daran, dass OpenOCD den ST-Link gar nicht erst findet. Ich habe auch versucht den Windows Treiber für den ST-Link zu tauschen und mittels Zadig den Treiber WinUSB(v6.1.7600.16385) installiert. Dennoch bekomme ich beim Versuch OpenOCD zu starten das Meldungsfenster: "No ST-LINK detected! Please connect ST-LINK and restart the debug session." bzw in der Konsole: Error: 105 644 stlink_usb.c:3374 stlink_usb_usb_open(): open failed Debug: 106 647 command.c:545 run_command(): Command 'init' failed with error code -4
Also scheint wohl dass OpenOCD den ST-LINK gar nicht erst findet. Hat jemand einen Rat?