Gast
#7206284
Ein Datenlogger speichert Daten auf einem seriellen 256 Mbit Flash-Baustein (W25Q256). Das Ganze soll über USB auslesbar sein, deshalb wurde FAT16 als Filesystem verwendet, genutzt wird FATFs von ElmChan. Am USB verhält sich das Gerät als normaler Massenspeicher. Das Ganze funktioniert auch, allerdings beschreibt FAT den Speicher sehr ungleichmäßig. Die File Allocation Table wird sehr häufig beschrieben, so dass zu befürchten ist, dass die zugehörigen Sektoren schnell verschleißen und ausfallen. Ein Wear-Leveling muss also her. Dieses würde ich zwischen Dateisystem und Flash-Treiber schalten. Bei Microchip gibt es dazu eine application note: https://www.microchip.com/en-us/application-notes/an32194 Leider weiss ich nicht, wo ich die dort erwähnte Library finden kann. Die Suche nach "ftl" liefert nur unbrauchbare Ergebnisse. Kennt jemand eine freie Bibliothek, die ich nutzen kann? Selbst programmieren wäre auf den ersten Blick natürlich auch möglich, man müsste eine Tabelle anlegen, die die logischen und physischen Addressen aufeinander abbildet. dazu noch Zähler für die Anzahl der Schreibvorgänge. Das Problem ist, dass diese Tabellen ja auch im Flash abgelegt werden müssen, um sich beim Abschalten nicht zu verflüchtigen. Damit kämen auch wieder viele Schreibvorgänge auf die gleiche Speicheradresse zustande.