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....
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
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.