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
SCB->VTOR richtig setzen. Das geht mittels #define VECT_TAB_OFFSET XYZASDF. Einfach mal suchen, das hatten wir hier schon oft.
Peter schrieb: > Ich muss wegen einem Bootloader mein Programm um 32K verschieben. Der Dativ ist dem Genitiv sein Tod.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.