Forum: Compiler & IDEs EmBlitz STM32f411 Wie Programm auf anderer Adresse legen?


von Peter (Gast)


Lesenswert?

Hi.

Ich muss wegen einem Bootloader mein Programm um 32K verschieben.

Dem Linker kann ich die Start Adresse ja einfach ändern, aber reicht 
das?
Die Int-Vectortabelle muss ja immer noch funktionieren nach dem 
verschieben.

Ich benutzt EmBlitz  mit einem STM32f411.

VG, Peter

von Christopher J. (christopher_j23)


Lesenswert?

SCB->VTOR richtig setzen. Das geht mittels #define VECT_TAB_OFFSET 
XYZASDF. Einfach mal suchen, das hatten wir hier schon oft.

von Dutch Leera (Gast)


Lesenswert?

Peter schrieb:
> Ich muss wegen einem Bootloader mein Programm um 32K verschieben.

Der Dativ ist dem Genitiv sein Tod.

von Martin B. (ratazong)


Lesenswert?

In meinem Bootloader setze ich VTOR so, dass es passt und springe dann 
in das Applikationsprogramm.

Wenn Du die Sourcen des Applikationsprogramms vom der CubeMX Software 
erstellen lässt , überschreibt das Applikationsprogramm allerdings den 
VTOR wieder. (Über den Sinn kann man streiten, STM machts aber so)
Dann musst Du den ominösen VTOR_OFFSET im source code suchen und 
anpassen.

Ausserdem musst Du den MSP richtig laden, Das mache ich bei mir auch im 
Bootloader, indem ich den MSP aus der Vector Table des 
Applikationsprogramms lade (schon im Bootloader)

Ist denn de bootloader unter Deiner Kontrolle? Dann kannst Du gucken, ob 
er den VTOR und MSP lädt, bevor er ins Applikationsprogramm springt.

von Peter (Gast)


Lesenswert?

Dativ, Genitiv oder was auch immer, ist mir egal Hauptsache der Satztbau 
ist so einigermaßen richtig und man versteht was ich meine.

VECT_TAB_OFFSET war der richtige Tipp, dann findet man auch genug Info 
dazu.
Ich denke das es jetzt auch gehen wird.

Testen kann ich das erst so richtig wenn die Hardware dazu arbeitet.
Meine MiniSD-Card Halter sind noch in der Post!

Viele Dank Peter

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.