Forum: Mikrocontroller und Digitale Elektronik ARM Cortex: Probleme mit der Interrupt Vector Table


von S. J. (stj)


Lesenswert?

Hallo,

Ich versuche grade eine Art Bootloader auf einem LPC1768 zu schreiben. 
Ich habe es so weit zum laufen bekommen, das der Bootloader (startet von 
Adresse 0x00000000) das Hauptprogramm an Adresse 0x00020000 starten 
kann.
Das Hauptprogramm verhält sich solange normal, bis der erste Interrupt 
kommt. Dann scheinen die Handler aus dem Bootloader aufgerufen zu 
werden. Ich habe den Offset 0x00020000 in das VTOR Register geschrieben, 
aber anscheinend wird das ignoriert.
Ich habe auch schon versucht die Vector Table in den SRAM an die Stelle 
0x20080000 zu verschieben, aber das hat auch nichts gerbracht.
Was ich vielleich noch dazu sagen muss ist, dass das  Hauptprogramm, 
wenn es für Startadresse 0x00000000 compiliert wird und von da aus 
ausgeführt wird, problemlos lauft.

Ich hoffe, das hier jemand ne Idee hat, warum es bei mir nicht läuft.

Grüsse,

Stephan

von Hubu (Gast)


Lesenswert?

Ist dein Booloader wirklich 128kB groß? Wieviel Flash hat dein uC?

von S. J. (stj)


Lesenswert?

Der macht schon etwas mehr als ein normaler Bootloader. Der ist etwa 
80kb gross.
Der LPC1768 hat insgesammt 512 kb Flash. Ausserdem sind nochmal 4 Mb 
externer Flash drann.

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.