2009-03-18 7 views
9

Я работаю над встроенным приложением, которое использует флэш-память NAND для хранения. Как теперь выглядит, мы не будем использовать Linux или другие RTOS. Приложение должно обрабатывать неожиданные отключения питания.Что такое хорошая файловая система для встроенных дисков NAND?

Мы рассматривали различные решения файловой системы, включая YAFFS2, JFFS2, FAT + FTL, а также решения от HCC Embedded.

Я слышал, что FAT + FTL - это нормальный выбор, но я беспокоюсь о потере данных в случае неожиданных сбоев питания, а также производительности. Был бы признателен, если бы кто-нибудь мог поделиться знаниями и опытом об этом

+1

Обновление: Мы отправились с YAFFS2, это хорошо работает для нас. Документации не существует, но не большая проблема - код довольно понятен для чтения. Также есть хорошая поддержка Чарльза Мэннинга. –

ответ

8

FAT-FTL - это «нормальный выбор», но не обязательно хороший выбор. YAFFS2 является более новым, чем JFFS2 и, кажется, быстрее и масштабируемо для больших NAND. This presentation of the "Embedded Linux Conference Europe" сравнивает эти две и другие флэш-файловые системы.

Другим решением является LogFS (примечание: журнал стоит здесь для логорифмического, а не для логарифмической структуры). Он также должен быть более масштабируемым, но я не знаю, как это работает.

+0

Спасибо, это интересная презентация. Из того, что я читал, LogFS не кажется готовым к производству. –

2

Существует коммерческий поставщик под названием DataLight, который предлагает надежную флеш-файловую систему, но, конечно, она не является бесплатной.

У них есть интересный white paper (PDF) (возьмите с солью) на выступлениях.

6

Есть UBIFS. Единственная реализация, о которой я знаю, - это ядро ​​Linux, и это зависит от интерфейса UBI ядра Linux. Однако основные алгоритмы должны быть реализованы без особых проблем в любой среде, в которой вы используете. Что касается готовности производства, Nokia использует UBIFS в своем смартфоне N900, а также поддерживают компьютеры на базе SheevaPlug. Я нашел, что реализация Linux является надежной, даже на шероховатом оборудовании, которое любит перезагружать себя наугад. В отличие от JFFS2, UBIFS не нужно читать всю файловую систему при запуске.

Возможно, вы захотите пересмотреть свое решение «нет Linux», поскольку использование Linux упростит использование UBIFS.