mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie beschreib ich beim AT91SAM7S256 den internen Flash wärend des Betriebes?


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte beim booten einen festen Wert an eine Adresse im internen 
Flash schreiben, habs bisher mit memcpy() probiert. Damit krieg ichs 
nicht hin, weil dieser Speicherbereich wohl schreibgeschützt ist.

Kann mir jemand sagen, wie das funktioniert??

Autor: Anonymous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaube, du kannst nur dann im Flash schreiben, wenn du die 
Flashroutinen im RAM abgelegt hast...

Autor: SAMler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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! :-)

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.atmel.com/dyn/products/tools_card.asp?t...
-> software package AT91SAM7S-EK -> Beispiel basic internalflash.
vorbereitet für GNU und IAR

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.