Kann jemand ein kleines Flash-Dateisystem für eingebettete Projekte vorschlagen?

9

Ich verwende einen AVR 32bit Prozessor mit 512Kbyes Flash Speicher. Ich bin nach einem kleinen Dateisystem, das auf weniger als 20 KByte Programmspeicher kompiliert und einige Wear-Leveling-Funktionen bietet, da die Anwendung einen ziemlich konstanten Datenstrom schreiben / protokollieren wird.

Der Wikipedia-Artikel enthält eine Menge Optionen, aber die meisten von ihnen sehen aus wie recht schwere Linux-Dateisysteme (um ehrlich zu sein, ich habe keine Ahnung, wie klein sie kompilieren werden) Wiki-Liste der Dateisysteme

Das Beste, was ich von Stack Overflow gefunden habe, referenziert Petit FAT , welches die Skala liefert (~ 5Kbyes kompiliert) und die grundlegende Funktionalität, nach der ich suche, aber kein Wear Leveling bietet, da es auf dem FAT-System basiert.

Hat jemand irgendwelche empfehlenswerte Dateisysteme oder einen guten Artikel, um mir zu helfen, das Petit FAT System mit Wear Leveling zu ergänzen?

Nebenbei bei der Suche, wie kann ich alle Adobe "Flash" -Fragen stoppen, die in den Ergebnissen erscheinen, wenn ich das Wort "flash" in meiner Suchanfrage benutze

    
Tim 09.03.2011, 14:20
quelle

5 Antworten

4

Das Petit FAT ist ein Dateisystem, das medienunabhängig ist. Es kann mit Flash, einer SD-Kartenschnittstelle, einer Festplatte, einer RAM-Disk usw. verwendet werden. Der Wear-Leveling der Flash Translation Layer (FTL) bleibt als separate Schicht oder Modul.

Google FTL-Wear-Leveling für einige gute Artikel.

Es gibt einige Flash-Dateisysteme von Drittanbietern für ST Microelectronics .

    
semaj 09.03.2011 16:47
quelle
4

Ich habe ein einfaches, aber belastbares Protokollierungsdateisystem mit dem Namen Pieter Conradie 27.01.2015 08:37

quelle
2

Kostenlose Lightweight-Flash-Dateisysteme, die Wear-Leveling implementieren, sind selten.

Mit diesem gesagt, habe ich bemerkt, dass Sie einen Atmel-Chip verwenden. Befindet sich das eigentliche Dateisystem auf dem Chip oder auf einem externen Flash-Chip? Wenn es sich auf einem Atmel DataFlash-Chip befindet, können Sie die DataFlash Software Suite verwenden. Es enthält ein Dateisystem mit Wear Leveling und ist kostenlos. Sie müssen eine Vereinbarung mit Atmel unterzeichnen. Hier ist eine Pressemitteilung , in der die Software erwähnt wird. Etwas, über das es sich zu überlegen lohnt.

    
waffleman 17.03.2011 16:35
quelle
1

Eine lange Zeit ist vergangen, seit diese Frage ursprünglich gestellt wurde, und seit 2011 wurden mehrere neue Entwicklungen ins Spiel aufgenommen.

SPIFFS

Einer davon ist SPIFFS (SPI Flash File System) . Ich habe es in mehreren Projekten verwendet.

Es hat einen niedrigen Tragekomfort und einen sehr geringen Speicherbedarf. In meinem Fall verbraucht SPIFFS 16 kB Flash und 2 kB RAM um 1 MByte SPI Flash mit 4 Dateien zu versorgen.

YAFS

Eine andere, die ich in Betracht ziehen möchte, ist YAFS . Sein Speicherbedarf ist größer, aber es ist ein logarithmisches Dateisystem, das sich bei Aufgaben mit vielen Schreib- / Änderungsvorgängen positiv auswirken kann.

Speicherschätzungen finden Sie auf der YAFS-Site namens "Yaffs memory footprint".

(Ich kann aufgrund eines Rufmangels keinen direkten Link posten)

    
drkr 23.06.2017 16:15
quelle
0

Ich hätte eine Reihe von Flash-Dateisystemen per Hand gesponnen, die unterschiedliche Kompromisse zwischen RAM, Kapazitätsanforderungen, Speichereffizienz und Löschblockgröße beinhalteten. NAND-Flash-Geräte sind so lächerlich groß und billig geworden, dass ein Ansatz, an den ich gedacht habe, den ich aber nicht verwendet habe, jedes Byte als 16 Bits speichern würde, um zufällige Byte-Lesevorgänge mit fehlerkorrigierendem Code zu ermöglichen ( *), und zuteilen Sie Dinge in Löschblockgrößen und ignorieren Sie große Mengen an Speicher. Selbst wenn man nur einen winzigen Bruchteil der gesamten Chipgröße verwendet, war das letzte Mal, als ich die Preise betrachtete, NAND-Blitze so viel billiger als NOR-Flash, dass man wahrscheinlich z. Verwenden Sie 1/16 eines 1 GB Flash-Geräts billiger als ein 64 MB NOR-Flash.

(*) Berechnen Sie z. B. nach jedem Bytewert b t = (b ^ (b * 2) ^ (b * 8) ^ (b * 32)) und dann output ((t & amp; 255) ^) (t & gt; & gt; 8) ^ 255). Dies ermöglicht die Erkennung und Korrektur aller Einzel- und Doppelbitfehler (das Bitmuster für eine geschriebene 0xFF ist dasselbe wie das eines leeren Geräts, so dass Doppelbitfehler leerer Wörter als 0xFF gelesen werden).

    
supercat 28.03.2011 18:23
quelle

Tags und Links