Forum: Mikrocontroller und Digitale Elektronik Daten im Flash über AVR109 ändern


von subguru (Gast)


Lesenswert?

Hallo,

ich komme hier irgendwie nicht weiter. Ich habe hier einen lauffähigen 
Bootloader(AVR109) auf einem ATmega168. Ich habe den Code etwas 
angepasst und es läßt sich nun auch gezielt eine Page löschen und der 
Inhalt einer Page in den Page Buffer laden.
Ich kann aber leider den Inhalt des Buffers nicht ändern und Ihn wieder 
in den Flash schreiben. D.h. ich kann ihn schon ändern, das Ergebnis das 
dann im Flash steht ist aber etwas anderes. Ich mach das momentan über 
die Konsole und den Befehlen die im AVR109 Manual stehen.
Im einzelnen mache ich folgendes:
A dd dd : Adresse wählen
g 00 80 F:Page einlesen mittels _FILL_TEMP_WORD(*address,data);
A dd dd : Adresse des zu ändernden Bereichs anwählen
c dd C dd: Inhalt ändern
A dd dd : Adresse wählen
m : Page zurückschreiben

Kann mir da jemand weiterhelfen. Alternativ müßte ich halt die Daten 
über die serielle Schnittstelle auslesen, ändern, page erase machen und 
dann wieder schreiben. Ich dachte nur das würde auch mit dem internen 
Cache gehen??!

danke

von subguru (Gast)


Lesenswert?

Hmm, kann es sein daß der Page Buffer gar nicht dafür vorgesehen ist die 
Daten zu ändern, sondern daß das zuerst im RAM gemacht werden sollte?
Nach dem Ändern schreibe ich die Daten in den Page Buffer und dann auf 
den Flash. Oder?

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.