Цитата(bmf @ Sep 8 2005, 10:07)
c YAFFS работал
скажу про недостатки:
она не доделана (по тексту много замечаний) и больше не развивается (замещена пользу YAFFS2)
сразу расчитайте сколько надо RAM - для 128M NAND при кластере в 8KB - 128K, а в оригинале кажется для 2K нужно - 512K это минимум
Время запуска (ускоренная вычитка всех областей) для 128M - около 4sec
Непредсказуемые задержки в процессе выполнения (при накоплении данных в gabrage collection происходит их длительная очистка и перемещение)
для YAFFS2 структуры в памяти и требовательность к ресурсам еще больше
соответствнно для 512M NAND - все в 4 раза больше и дольше
единственное преимущество это нечувствительность к пропаданию питания
как по мне - она (что YAFFS, что YAFFS2) только для ресурсоемких систем, а по времени старта вообще сомнительна для embedded
Принцип работы - просто загрузить всю информацию о всех секторах и блоках в RAM и работать с ней, поэтому и такая ресурсоемкость и монстровитость.
С YAFFS2 (direct-mode, ARM CPU 90 Mhz) работаю и сейчас (раньше использовал портированную jffs - это небо и земля) и не совсем с Вами согласен.
1. Расход памяти (RAM) - зависит от конфигурирования (исходных параметров).
2. Gabrage collection - медленноват для NOR-flash, для NAND - очистка сектора (страницы) достаточно быстра (~ 2 ms) и тормозов практически нет
3. перемещение - в этом же суть ФС для флеш-памяти! Благодаря этому, сохраняется ресурс секторов на запись - нет их быстрого "убивания" (идет равномерное использование)!
4. Для обеспечения быстродействия - разумный компромис между RAM и Flash диском (используя все ту же YAFFS2).
5. Приблизительно - у меня в embedde-system - 3 раздела/диска (1 RAM, и 2 - на разных чипах - flash) темп поступления инфо - не менее 500-800 байт в 20-100 мс, все прекрасно (размер конечного файла - не менее 6-8 МБ + 30-40 статичных БД/ИФ файлов, из к-рых читается инфа)
6. Небольшую чистку исх. файлов YAFFS2 можно сделать - с точки зрения оптимизации.
Нормальный расход флеш (мой опыт): максим. использование объема - не более 60-70% (т.е., если, например, файлы совокупно будут использовать до 1 МБ, желательна флеш объемом не менее 1.6 МБ)
P.S. 1. Для NAND - приведено время очистки блока, а не страницы. Например, если размер страницы 2К, то размер блока м.б. 128К - т.е. 64 страницы, и время очистки блока - порядка 2 миллисекунд
2. YAFFS работает с NAND со страницами в 512 байт (+ 16), YAFFS2 - с NAND со страницами в 2К