Gast
#6044361
Zum debuggen diverser Cortex-M benutze ich mittlerweile am liebsten VSCode und die Cortex-debug Extension. Das funktioniert einigermassen gut, aber es gibt einige Unschärfen und Unterschiede bei den verschiedenen möglichen Interfaces. BMP: funktioniert schnell und gut, wenig Konfigaufwand weil die debug probe smart ist. Manchmal klemmt der gdb, will viel Speicher haben und startet dann nicht. Passiert recht selten, manchmal hilft mehrmals starten probieren, VScode neustart oder target ins Boot-ROM starten. BMP benutze ich als Alternative Firmware auf einem billig STLink Clone, bei Boards mit integrierten STLink müsste man die Firmware umprogrammieren. Stutil: Habe den gleichen Code jetzt auf einem ST DISCO board getestet und wollte da den integrierten STLink V2 benutzen (Disco STM32F769NI). Dafür gibt es das texane/stutil. Code flashen geht sehr fix, aber steppen nicht richtig. Wenn ich auf einen BP laufe und dann mit step over über eine Funktion springen möchte passiert nix. Mit setp into lande ich in einem Interrupt Handler, da kann ich dann weiter steppen. Wenn ich Run ausführe lande ich wieder auf meinem BP. Ich muss den BP löschen und eine Zeile weiter setzen, dann kann ich da hinlaufen. Das stutil das als Installversion vorliegt hat die Version 1.3.0, ich habe mühselig die 1.5.1 kompiliert aber das Verhalten bleibt gleich. Kann das irgendeine gdb Einstellung sein die anders ist? Ganz habe ich das stutil noch nicht durchschaut, hat das auch ein Stück gdb mit drin? pyOCD: funktioniert auch, aber seeehr lahm. Flashen langsam (wird 32 Bit Operation nicht unterstützt oder muss man das aktivieren?) und auch steppen ist sehr langsam. Für den F7 gibt es ein Problm das MCU .pack zu laden, ich hatte das aber schon vorher mal geladen und dann mit manuellen Eingriffen installiert bekommen. Auch pyOCD hat manchmal Startprobleme, ist auf der Github Seite auch dokumentiert. Dann ist erst ein flash erase nötig, ist bei 2 MB auch lästig. openOCD: hatte auch funktioniert, möchte ich aber wegen der MCU abhängigen Konfig in launch.json vermeiden. jlink: müsste auch funktionieren, aber man muss den integrierten STLink umprogrammieren. Und der jlink Treiber erinnert täglich daran das er gerne gekauft werden möchte, auch lästig. Wie sind eure Erfahrungen, gibt es zu den genannten Problemen Lösungen?