Forum: Mikrocontroller und Digitale Elektronik Bootloader >64k


von Tommy (Gast)


Lesenswert?

Hallo Leute,

ich hab ein Problem meinen bootloader von atmega640 auf atmega1280 
umzustellen.
Umstellung ist notwendig, weil das Programm mehr als 64kbyte flash 
benötigen wird.

Soweit so gut, alle pgm_read_byte durch pgm_read_byte_far ersetzt, in 
beim compiler den typ geändert, dadurch wird aus jedem write ein 
write_extended.

Es sieht auch alles sehr gut aus, wenn ich einfach mal probeweise 
zusätzlich zu meinem Programm ein bestimmtes muster nach 0x1c000 flashe, 
ist es bei einem readout auch an dieser Stelle.

Allerdings funktioniert mein Programm nicht mehr, sobald ich etwas an 
0x1c000 (oder auch) 0x1a000 flashe... Scheint so, als ob zusätzlich 
noch etwas kaputt geschrieben wird. Das Programm an sich hat im moment 
erst 40k, also noch lange von den 64k entfernt.

Gibt es da noch irgendetwas zu beachten oder hatte jemand schonmal so 
ein Problem?

von mira (Gast)


Lesenswert?

wenn der bootoader aufgespielt wird, wird der Rest  gelöscht.
Ich nehme an du flashst dann auch nur mit dem Bootloader.
Der Bootloader muss dann aber auch die Pages korrekt adressieren, sonst 
werden die Daten verstümmelt.

von Thomas E. (thomase)


Lesenswert?

Tommy schrieb:
> Gibt es da noch irgendetwas zu beachten

http://www.nongnu.org/avr-libc/user-manual/group__avr__pgmspace.html
Lies dir unter Detailed Description mal die 1. Note durch.

mfg.

von marixstorm (Gast)


Lesenswert?


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.