Config-Daten im Flash ablegen (PIC32MX795)

Gast #3732321
Lesenswert?
• ▲
▼
Das Flash des PIC32MX795 lässt sich scheinbar nur in niedriger
begrenzter Anzahl (um die 1000 Löschaktionen) benutzen.
Zumindest wenn man auf der sicheren Seite bleiben will.

Ich möchte Config-Daten im Flash ablegen.
Mindest-Block-Größe sind scheinbar 4 KBytes.
Die zu speichernden Daten sind nur ein paar Bytes,
ich möchte aber die Anzahl der benutzen Erase-Cycles
auf einem Minimum halten.

Daher folgende Idee:
1) Wenn ich eine (Flash-)Seite das erste Mal benutze, muss ich
sie natürlich prüfen, ob sie leer ist, falls nicht, löschen.
2) Nun schreibe ich meinen CFG-Daten rein (z.B. 8 Bytes,
Vielfache von 4 Bytes)
3) Wenn ich die CFG-Daten verändern will, müsste ich die Seiten
vorher auslesen (mindestens meine CFG-Daten),
zwischenspeichern, Seite löschen, neu reinschreiben.
Dies will ich vermeiden. (Komme ich irgendwann aber nicht darum
herum, wenn ich die ganze Seite vollständig beschrieben habe.)
4) Eine gelöschte Seite hat lauter 0xFF drin.
Wenn ich Daten schreibe, werde manche Bits auf 0 gesetzt.
Wenn die 0-Bits auf 1-Bits verändert werden müssen,
dann muss ich die Seite löschen, also vermeiden.
Kann ich aber weitere 1-Bits auf 0 setzen?
Kann ich also meinen CFG-Daten durch beschreiben mit 0x00
als ungültig markieren und weiß damit, dass ich mit Offset 8
weiter lesen/testen muss?
Oder hat der PIC32MX795 einen Mechanismus, dass ich dies
nicht machen kann?
5) Alternative wäre, dass ich die CFG-Daten jeweils auf die
nächsten 8 Byte schreibe (natürlich aligned), die frei (0xFF)
sind.

Würde dies gehen? Oder macht mir da irgendein Schutzmechanismus
eine Problem, so dass ich nur einmal löschen und einmal schreiben
kann?

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.