Forum: Compiler & IDEs AVR32 UC3 Bootloader Verständnisfragen


von Billy _. (slowflyer)


Lesenswert?

Ich bastel gerade an einem Bootloader für den AVR32 UC3 (A1512) in C. 
Ich habe das Projekt erstmal ganz normal angelegt und hab mir aus dem 
Framework die nötigen Komponenten dazu gepackt. In der main() wird das 
binary gelesen und an eine beliebige Flash-Adresse geschrieben (funzt 
probehalber).

Jetzt gehts es los:

Wie vermittle ich meinem Bootloader-Projekt, dass es sich im 
Bootloader-Bereich befinden soll (macht das der Compiler oder der Linker 
und wenn ja wie)?

Wie vermittle ich dem Controller, dass er erst den Bootloader starten 
soll?

Liegt der Bootloader ab Adresse 0x80000000? Wo sind die Resetvektoren, 
muss ich die in meiner eigentlichen Applikation irgendwie behandeln?

Irgendwie bin leicht verwirrt, da hackt es bei mir noch 
wissenstechnisch.

von Joe D. (kosmonaut_pirx)


Lesenswert?

hi,

zu frage 1: das macht der linker. musst dazu den entsprechenden teil in 
die bootloader-section legen. schau mal hier im forum oder in der hilfe, 
wie man sowas macht.

zu frage 2: da gibts nen fuse-bit für, iirc.

zu frage 3: siehe doku mcu. die resetvektoren werden für den fall des 
bootloader-starts dann auch ab dort erwartet. für die eigentliche 
applikation wird das ja so hin gelinkt.

gruß kosmo

von Billy _. (slowflyer)


Lesenswert?

Danke, für die schnelle Antwort.

Habs jetzt kapiert (glaub ich) und folgendermaßen gemacht:

Bootloader (BL) ist ein normales Projekt, das die max. BL-Größe (hier 
64K) nicht überschreitet. Nach BL-Start wird auf BL-Kondition geprüft, 
sonst Sprung an die Apllikationsstartadresse.

Applikation ist ebenfalls ein normales Projekt. Dazu Trampoline mit der 
Größe des Bootloaders eingebunden (Siehe AVR32 UC3 USB DFU Bootloader 
Dokument von Atmel)

Nur hab ich jetzt mit der Größe des Bootloaders noch ein Problem, das 
aber in einem anderen Thread...

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.