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?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.