Bootloader AVR XMega - RAMPZ Register "falsch"

Gast #2905773
Lesenswert?

Hallo,

ich setzte gerade meinen in C geschriebenen Bootloader Code auf XMega 
um. Irgendwie klappt das aber nicht so ganz.

Der Code wird per Linker Schalter -Ttext=0x20000 auf die korrete Flash 
position gemappt. Auch die ISR Vectoren sind dort.

Der Init Code setzt aber das RAMPZ register aux 0x02. Damit werden alle 
IO-Zugriffe auf den falschen Addressbereich gemappt. Nach dem Reset ist 
das RAMPZ Register noch auf 0x00.

zB Zugriff auf IO-POrt
PORTE.OUT = 0xaa;
geht halt nicht auf das IO-Register sondern auf eine Addresse um 0x20000 
"daneben".

Ich habe mir versucht am Atmel-Applikation-Notes etwas abzuschauen. Die 
sind aber nicht mit AVR-Staudio Projektfiles sondern mit 
IAR-Projektfiles.

Kann mir jemand einen Tipp oder ein BeispielCode für den 
Bootloaderbereich geben?

Danke, Adib.
--

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren