PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega8: Daten im Flash speichern



felack
09.08.2006, 10:10
für einen Kurzwellenempfänger mit ATmega8 möchte ich die Stationsdaten im Flash speichern. Das Programm braucht nur 4 Kbyte, deshalb möchte ich den Rest des Flashspeichers mit Hilfe der Befehle SPM beschreiben und mit LPM wieder auslesen. Weiß jemand, wie man das mit BASCOM machen kann? Braucht man verschiedene Routinen für den RWW und NRWW-Bereich? Arbeitet der ATmega nach dem Ausführen des SPM-Befehls sofort weiter?

felack

linux_80
09.08.2006, 12:01
Hallo,
man schreibt beim flashen die Bytes der Seite erst in den Puffer, danach kann man die zu beschreibenede Seite löschen, dann den Puffer ins Flash übertragen.

Mit SPM schreibt man die Daten erst nur in den Puffer.
Was bei SPM genau gemacht wird ist abhängig vom Register SPMCR.
Wenn die Seite voll ist muss man in SPMCR das Flag PGWRT setzen um die Seite zu übertragen.
Je nachdem ob man sich in der NRWW oder RWW Sektion befindet wird der restliche AVR für die dauer des flashens angehalten.
Ob der letzte Befehle abgeschlossen ist zeigt auch das Flag SPMEN an.

Da es aber in Bascom den Bootloadersupport gibt, sollten die Routinen irgendwo zu finden sein, sodass man das nicht alles von Hand machen muss !?
Hab mich aber noch nicht näher damit befasst.