Цитата(AlexandrY @ Nov 14 2012, 01:07)

Сейчас актуальна YFFS2. Но расчеты по памяти для нее не очень верны.
Там сразу около 12 Кб отхватывается под временные буфера и еще около 20 Кб идет на кэш.
Я специально не указывал версию, т.к. формат JFFS1 может подойти в данном случае больше.
Расчеты вполне могут быть неточны - писал по памяти. Давайте подсчитаем для раздела <8MiB,
page size 512B, 100 файлов по 8KiB, кеши отключены (
как описано здесь):
3608 + 100 * 124 + 100 * 32 = 19208, т.е. примерно ~20KB. Нормально это или нет - решать точно не нам.
Цитата
И DataFlash не является NAND. В DataFlash данные в блоке можно дописывать, и блок выдерживает 100000 стираний, а в NAND блоки нельзя дописывать и они выдерживают без появления ошибок только 1000 стираний.
И потому файловые ситемы на DataFlash и NAND сильно отличаются.
Что хорошо для NAND, то на SPI DataFlash будет жутко тормозить.
Да вот как раз внутри DataFlash скорее всего стоит NAND:
1. 100000 циклов - это типичное значение для SLC NAND, а для NOR оно от 100000 - бесполезная в данном случае инфа.
2. Размер страницы как у NAND - 264, 528, 1056... - это page + spare.
3. Время стирания страницы - десятки мс - как у NAND.
4. Самое главное, что дописывание в страницу происходит по такому же принципу, что и у NAND: страница читается
во внутренний SRAM буфер, модифицируется, стирается старая страница во flash array, буфер записывается во flash
array. Т.е. часть работы делается внутренней логикой DataFlash, а снаружи кажется, что дописывание есть. Более
того, такое поведение требует, чтобы после каждых 10000 суммарных циклов такого дописывания рефрешился весь блок
(сектор), причем вручную - поэтому на "NOR поведение" рассчитывать вообще нельзя.
По большому счету, совсем неважно, на какой технологии построен flash array, главное что по поведению и
временным характеристикам это NAND (хоть и на стероидах, с внутренними буферами и доп командами). А, значит,
ФС для нанда должна нормально лечь на DataFlash. Конечно, незаточенная под DataFlash ФС не будет использовать
некоторые ее фичи (вроде прозрачного дописывания), однако основной оверхед может возникнуть только из-за копирования
данных по SPI вместо локального SRAM. Но, во-первых, модификация так и так будет происходить десятки мс из-за стирания
страницы, и лишний прогон 512 байт по SPI с частотой в десятки МГц особо производительность не уронит. А во-вторых,
YAFFS пишет только в предварительно стертые блоки, и данная атмелевская фича вообще не к месту.
Так что тормозить там нечему.
Вообще, такая тема уже
поднималась, и все свелось к написанию своего велосипеда.