Wie beschreib ich beim AT91SAM7S256 den internen Flash wärend des Betriebes?

Gast #1002731
Lesenswert?

Du kannst selbstverständlich im Code einzelne Bereiche neu schreiben. 
Dazu musst du jedoch den Embedded Flash-Controller (EFC) zu Hilfe 
nehmen. Du brauchst einen Buffer in der Größe einer Page. Diesen Buffer 
übergibst du an den EFC. Dann kannst du mit einem Read des EFC eine Page 
in den Buffer zurücklesen, kannst an bestimmter Stelle deine Änderung 
machen und dann den Buffer durch den EFC wieder schreiben lassen. 
Wichtig, setze das Flag im EFC dass er die Page vor dem Schreiben selber 
löschen soll, sonst musst du es selbst löschen, indem du dies zuvor 
selbst auslöst.

Achtung!
Vorsicht ist geboten, beim programmieren einer internen Flashpage, da 
der S256 nur ein phys. FlashMemory besitzt. Deshalb, sollte dein 
Programmcode aus dem internen Flash laufen, musst du das Auslösen des 
Pageprogrammieren des EFC und das Warten bis das programmieren beendet 
ist, in einer RAM_Funktion ausführen, denn sonst programmiert der EFC ne 
Flashpage und deine CPU macht den nächsten Code-Fetch ebenfalls aus dem 
Flash --> Crash

Falls du mit IAR entwickelst, die haben dazu en Sample mit an Bord! :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren