Bootloader AtMega

Gast #1288359
Lesenswert?

Hallo Zusammen,

ich habe folgendes Problem.
Mein kleines Programm soll im im Bootloader Sector eines
Mega128 abgelegt und ausgeführt werden.

Mit der Linkeranweisung .text = 0xF000 wird das ganze in den richtigen 
Bereich geschrieben.

Das Programm funktionier auch soweit.

Wenn ich nun eine Globale Variable einfüge und diese gleich 
initialisiere
funktioniert das ganze nicht mehr.
Bsp. char myChar = 5;

Beim uplad des HEX Files geht dann irgendetwas schief...

Kennt jemand das Problem....
#1288388
Lesenswert?

Eine Vermutung - globale, initialisierte Variable gehen ins .data 
segment, d.h. Flash. Vermutlich muss das dann auch explizit mit einer 
Link Anweisung in den Bootloaderbereich verlagert werden.
Wenn die Variable nicht initialisiert ist, liegt sie vermutlich im SRAM.

Hier spricht gesundes Halbwissen - daher die Auskunft mit Vorsicht 
geniessen.

Grüsse
Axel

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