2009-03-18 8 views
9

Ich arbeite an einer eingebetteten Anwendung, die NAND-Flash für die Speicherung verwendet. Wie es jetzt aussieht, werden wir weder Linux noch ein anderes RTOS verwenden. Die Anwendung muss mit unerwarteten Stromausfällen umgehen.Was ist ein gutes Dateisystem für eingebettete NAND-Laufwerke?

Wir haben verschiedene Dateisystemlösungen gesucht, einschließlich YAFFS2, JFFS2, FAT + FTL sowie Lösungen von HCC Embedded.

Ich habe gehört, FAT + FTL ist eine normale Wahl, aber ich bin besorgt über Datenverlust im Falle von unerwarteten Power-Downs sowie Leistung. Wäre dankbar, wenn jemand Einblick und Erfahrungen dazu teilen könnte

+1

Update: Wir gingen mit YAFFS2, es funktioniert gut für uns. Dokumentation ist nicht existent, aber kein großes Problem - der Code ist ziemlich klar zu lesen. Auch Charles Manning hat gute Unterstützung. –

Antwort

8

FAT-FTL ist eine "normale Wahl", aber nicht unbedingt eine gute Wahl. YAFFS2 ist neuer als JFFS2 und scheint für große NANDs schneller und besser skalierbar zu sein. This presentation of the "Embedded Linux Conference Europe" vergleicht diese beiden und andere Flash-Dateisysteme.

Eine andere Lösung ist LogFS (Anmerkung: log steht hier für logarithmische, nicht für log-strukturierte). Es sollte auch besser skalierbar sein, aber ich habe keine Ahnung, wie genau das ist.

+0

Danke, das ist eine interessante Präsentation. Von dem, was ich gelesen habe, scheint LogFS nicht bereit für die Produktion. –

2

Es gibt einen kommerziellen Anbieter namens DataLight, der ein robustes Flash-Dateisystem bietet, aber natürlich nicht kostenlos.

Sie haben eine interessante white paper (PDF) (mit einem Körnchen Salz) auf Leistungen.

6

Es gibt UBIFS. Die einzige Implementierung, die ich kenne, ist im Linux-Kernel und hängt von der UBI-Schnittstelle des Linux-Kernels ab. Die fundamentalen Algorithmen sollten jedoch in jeder Umgebung ohne große Probleme implementiert werden können. Was die Produktionsbereitschaft anbelangt, verwendet Nokia UBIFS in seinem N900-Smartphone, und Plug-Computer, die auf dem SheevaPlug basieren, haben auch Unterstützung dafür. Ich habe festgestellt, dass die Linux-Implementierung zuverlässig ist, sogar auf flockiger Hardware, die sich gerne zufällig zurücksetzt. Im Gegensatz zu JFFS2 muss UBIFS beim Start nicht das gesamte Dateisystem lesen.

Vielleicht möchten Sie Ihre Entscheidung "kein Linux" überdenken, da die Verwendung von Linux die Verwendung von UBIFS erheblich vereinfacht.

Verwandte Themen