Forum: Mikrocontroller und Digitale Elektronik CubeIDE unterschiedliche Buildsettings


von peterpan (Gast)


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!

von Programmierer (Gast)


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.

von Andreas W. (geier99)


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

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
Noch kein Account? Hier anmelden.