Ich habe einen Bootloader für den AT90USB1287 in der Mache, der sich als
Host konfiguriert, bei Anstecken eines USB-Stick das dort abgespeicherte
Hex-File einliest und sich dann die neue Applikation programmiert.
Leider sind die maximal 8kB im Bootloader für dieses Feature bei weitem
nicht ausreichend, d.h. ich muss den Applikationsbereich anknabbern.
Andererseits muss die eigentliche Flashfunktion in jedem Fall im
Bootloaderbereich liegen (s. Datenblatt). Dem Linker sage ich also, dass
der Bootloader ab Adresse 0x15000 beginnen soll. Dummerweise dübelt mir
der Linker dann die Interruptvektortabelle an den Anfang, wo sie nichts
zu suchen hat. Wie kann ich dem Linker mitteilen, dass er sie
Interruptvektortabelle an 0x1E000 hinlinken soll, und den restlichen
Programmcode gewissermaßen außenrum ? Dass ich mit _attribute_
((section(".mysection"))) jeder Funktion eine eigene Startadresse
zuweisen kann, ist klar. Aber da muss es doch noch eine elegantere
Möglichkeit geben.
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.