CubeIDE unterschiedliche Buildsettings

Gast #6135168
Lesenswert?

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!
Gast #6135186
Lesenswert?

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.
#6227945
Lesenswert?

> 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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren