Forum: Mikrocontroller und Digitale Elektronik Formatierung eines Flash-Speichers


von Michael S. (rbs_phoenix)


Lesenswert?

Hallo erstmal.
Ich stehe gerade vor einer Art Problem, wie ich am besten Daten in ein 
64Mbit Flash bekomme. Genauer gesagt, wie diese Daten mit einem 16bit 
PIC unter C verwaltet werden. Es geht zum einen um Konfigurationen (von 
1 Byte bis zu Strings mit einer Länge von ca 50 Zeichen) aber auch um 
kleine Audio-Sequenzen oder aus dem Internet geladene, 
zwischengespeicherte Firmwarwupdates.
Ich habe mir da sowas ähnliches vorgestellt wie FAT16. Also wo ich z.B. 
eine config.ini erstelle, in dem die Werte abgelegt werden und einen 
Unterordner Audio, in dem ich die kB großen Dateien ablegen kann. Das 
Firmwareupdate könnte in eine separate Datei wandern, die nach dem 
Update wieder gelöscht werden kann (vielleicht kommen mit dem Update 
auch ein, zwei Audiodateien mit). Idealerweise auch mit einer 
Suchfunktion nach Dateinamen, aber das wäre ein nice to have.

Die ganzen FAT Beispiele usw die ich gefunden habe, beziehen sich aber 
immer auf SD- oder CF Karten. Man müsste somit iwie die Kurve zum SPI 
Flash bekommen.

Gibt es da soetwas oder was vergleichbares/nützliches? Oder eine FAT 
Bibliothek, bei der man die Lese- und Schreibfunktion selber bestimmen 
kann?

Vielen Dank schonmal

von Michael U. (amiga)


Lesenswert?

Hallo,

vielleicht
https://github.com/pellepl/spiffs

Gruß aus Berlin
Michael

von Bender (Gast)


Lesenswert?

FatFS kann doch genau das, was du benötigst ?
Du brauchst nur einen eigene Zwischenschicht/Treiber für den SPI Flash 
schreiben.

VG

von Stefan F. (Gast)


Lesenswert?

Zuerst solltest du klären, ob ein Wear-Levelling notwendig bzw. bereits 
im Speicherchip vorhanden ist. Als nächstes ist es wichtig, 
festzustellen, ob die Siftware Fehlererkennung und Korrektur beherrschen 
muss, oder ob das auch schon im Chip drin ist.

Möglicherweise fällt Dir dann ein, dass eine SD Karte letztendlich viel 
einfacher zu verwenden ist, als nackte Flash Speicherchips.

Die https://www.mikrocontroller.net/articles/AVR_FAT32 Library ist schön 
modular aufgebaut und man kann sie leicht auf andere Mikrocontroller 
portieren. Um etwas anderes als SD/MMC Karten anzusteuern, müsstest du 
lediglich die mmc.c neu implementieren. Die Implementierung des 
Filesystems kannst du 1:1 übernehmen.

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
Noch kein Account? Hier anmelden.