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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.