Hi, auf meinem STMF107 läuft ein Bootloader, somit muss ich in der system_stm32f1xx.c den VECT_TAB_OFFSET anpassen und in der M32F107VCTX_FLASH.ld den Memory Bereich. Leider funktioniert der Debugger über SWD dann nicht mehr somit würde ich CubeIDE gern so einrichten das beim Klick auf Debug das Projekt mit Wert A und beim Klick auf Build mit Wert B beschrieben wird (Bei Debug eben Bootloader überschreiben da Vec offset bei 0x00000000U) Ich hoffe ihr wisst was ich meine.... Danke!
peterpan schrieb: > Leider funktioniert der Debugger über SWD dann nicht mehr Wieso das? peterpan schrieb: > Bei Debug > eben Bootloader überschreiben da Vec offset bei 0x00000000U) Warum das? Der stört doch nicht. Es ist eigentlich kein Problem, ein Programm zu starten und zu debuggen, welches nicht am Flash-Anfang steht. Wenn dein Programm nicht darauf angewiesen ist, vom Bootloader gestartet zu werden, sondern auch "standalone" laufen kann: Sorge dafür, dass beim Starten der Debug-Session Program Counter & Stack Pointer korrekt gesetzt sind. Das Programm startet dann direkt, ohne Bootloader, und kann debuggt werden. Schreibe ins GDB-Startup-Script:
1 | set $PC=&Reset_Handler |
2 | set $SP=&_estack |
Die Namen Reset_Handler und _estack ggf. ans Linkerscript anpassen. Wenn du das nicht machst, startet halt erst der Bootloader und dann das Programm. Das sollte sich aber problemlos debuggen lassen.
> Schreibe ins GDB-Startup-Script:
Dank Deiner Hilfe konnte ich es auch mit folgenden Änderungen lösen:
1) Unter "Debug Konfiguration -> Startup -> Run Commands" eintragen und
nicht unter "... -> Initialization Command".
2) und die Registernamen kleinschreiben:1 | set $pc = &Reset_Handler |
2 | set $sp = &_estack |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.