Ich arbeite an einem Gerät, das die Microchip MDDFS-Bibliothek zum Speichern von Daten auf einer SD-Karte verwendet. Der Logger protokolliert die Daten mit einer maximalen Rate von 1 Eintrag (56 Byte) pro Minute. Das Problem ist, dass das Gerät möglicherweise während einer Schreibsequenz jederzeit die Stromversorgung verliert. Ich frage mich, wie ich meine Daten am besten vor Korruption schützen kann. Ich habe festgestellt, dass alle Daten, die nach dem letzten Schließen der Datei in die Datei geschrieben wurden, verloren gehen, wenn die Datei bei Stromausfall geöffnet ist. Ich weiß nicht, ob das Gleiche gilt, wenn die Stromversorgung in der Mitte der Schreibsequenz unterbrochen wird.
Da der Schreibvorgang nicht sehr häufig vorkommt, konnte ich die Datei jedes Mal öffnen, die Daten schreiben und die Datei dann schließen, wenn Daten protokolliert wurden. Würde dieser Ansatz die SD-Karte im Laufe der Zeit beschädigen?
Ein anderer Ansatz könnte darin bestehen, die Datei offen zu halten, aber nach jeweils 10 oder 50 Schreibvorgängen könnte ich die Datei schließen und erneut öffnen.
Ich könnte auch Daten im Speicher zwischenspeichern und die Daten dann gelegentlich löschen, möglicherweise nach einem kbyte oder so.
Die letzte Idee, die ich hatte, war, in meinem Stromkreis einen großen Kondensator hinzuzufügen, der meine Bild- / SD-Karte lange genug mit Strom versorgt, nachdem die Stromversorgung unterbrochen wurde, um die Datei schnell zu schließen. Das Problem bei diesem Ansatz ist, dass die Zeit, die zum Schließen der Datei und / oder Speichern von Daten benötigt wird, sehr inkonsistent ist. Nach meinem Verständnis kann diese Zeit stark von der aktuellen Position auf einer Flash-Seite abhängen, auf der sich die Datei befindet.
Wie auch immer, was würdet ihr vorschlagen?