Ich nehme nicht an, dass die MMC / SD-Kartenspezifikation etwas zum Abrufen von Informationen zum Löschen von Zählungen auf einer MMC / SD-Karte enthält, oder?
Mein Ziel ist es, mein eingebettetes System dazu zu bringen, das Schreiben in Metadaten wie den letzten Zugriff oder geänderte Zeiten zu vermeiden, Dateien mit mäßiger Größe zuzuweisen, die mit 0xFF sa gefüllt sind, und nur Datensätze darin anzuhängen.
Dies soll das Risiko eines Datenverlusts verringern, da die Stromversorgung jederzeit unterbrochen werden kann.
Die Verschleißausgleichsalgorithmen von MMC / SD-Karten sind jedoch unbekannt und möglicherweise sehr schlecht implementiert. Ich muss sicherstellen, dass die Karten nicht versuchen, Datenblöcke zu löschen, wenn ich nur Daten über 0xFFs schreibe. Wenn also so gut wie jede Art von Löschanzahl (Summe für die Festplatte, pro Block, was auch immer) zum Lesen verfügbar wäre ... wäre das großartig.
Ich bin mir nicht ganz sicher, wo diese Frage lebt ... aber da es sich um Dinge auf SD-Kartenprotokollebene handelt, dachte ich mir vielleicht hier.
BEARBEITEN
Ich glaube, ich werde weitermachen und die Dinge überkomplizieren. Festplattentests haben gezeigt, dass zumindest die SD-Karten, die ich habe, Blöcke löschen, selbst wenn die von Ihnen geschriebenen Daten nicht mit dem Inhalt auf der Festplatte übereinstimmen. Ich speichere bis zu 128 KB Daten in direkt steuerbarem NAND (mit dem ich das Schreibverhalten etwas besser steuern kann) und schreibe dann 128 KB-Blöcke in eine 128 KB-ausgerichtete Datei auf der VFAT-Partition. Das sollte die Exposition so weit wie möglich begrenzen ... aber wow, wie hässlich und kompliziert.
Antworten:
Ich weiß nicht, ob bestimmte SD-Karten Informationen zum Abnutzungsgrad enthalten, aber zum größten Teil würde ich vorschlagen, dass Ihr Wunsch, das Löschen von Blöcken mit FFs zu vermeiden, fehl am Platz ist. Selbst wenn ein virtueller Plattenblock nur FFs enthält, enthält er mit ziemlicher Sicherheit andere Adressinformationen und Fehlerkorrekturdaten, die neu geschrieben werden müssen, wenn Änderungen am Block vorgenommen werden, unabhängig von seinem vorherigen Inhalt.
Ich glaube, dass SD-Kartenhersteller ihre eigenen Algorithmen auswählen können, um zu entscheiden, wann Blöcke neu geschrieben werden sollen, auf die seit einiger Zeit nicht mehr zugegriffen wurde, und um die Datenintegrität bei einem Stromausfall sicherzustellen. Folglich kenne ich keine bestimmte Methode, um sicherzustellen, dass eine SD-Karte nicht beschädigt wird, wenn die Stromversorgung während eines Schreibvorgangs ausfällt.
quelle