Forum: Mikrocontroller und Digitale Elektronik Datenuebergabe Bootloader -> Firmware (im RAM)


von Alex (Gast)


Lesenswert?

Hallo,

in meiner Anwendung werden Daten vom Bootloader(Device startet im 
Bootloader) im RAM hinterlegt. Anschliessend springt der Code vom 
Bootloader auf Adresse 0x0000.

Wie deklariere ich in der Firmware sowie im Bootloader einen 
Speicherbereich im RAM der von beiden gelesen werden kann und auch nicht 
beim Systemstart initialisiert wird???

Nach der Anleitung in der AVR-LibC:
1
uint8_t ccc[16] __attribute__ ((section (".test1")));
mit dem Linker Flag
  -Wl,--section-start=.makroram1=0x800100

funktioniert es nicht. AVRDUDE bringt mir immer die Fehlermeldung:
  ERROR: address 0x800110 out of range at line 403 of MeinProjekt.hex

Danke.

mfg Alex

von Alex (Gast)


Lesenswert?

Achso.

Ich habe vergessen zu sagen, dass in meinem HEX-File wirklich die 
Adresse 0x800100 existiert.

von Alex (Gast)


Lesenswert?

Habe jetzt aus Speichergruenden den STACK-Pointer nach unten verschoben 
und die .noinit Section  hinter den Stack-Pointer Top verlegt.

DANKE

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.