На флеш-памяти NOR, особенно той, которая также содержит мой загрузочный код и приложение, я обычно избегаю накладных расходов на формальную файловую систему. Вместо этого я сохраняю каждый «интересный» объект, начиная с границы стираемого блока и начиная со структуры заголовка, которая как минимум содержит размер объекта и контрольную сумму. Добавление имени или идентификатора ресурса в заголовок является естественным расширением.
Загрузчик ищет допустимое приложение, проверяя контрольную сумму перед использованием блока. Аналогично, другие ресурсы могут быть подтверждены как действительные перед использованием.
Кроме того, утилита обновления встроенного программного обеспечения облегчает проверку объекта перед удалением и программированием его во FLASH.
Пул небольших ресурсов лучше всего обработать, поместив его в контейнер для перепрошивки. Если ресурсы поддержки поддерживают это, у меня возникнет соблазн использовать ZIP, чтобы обернуть файлы, обернуть изображение архива ZIP в заголовок размера и контрольной суммы и сохранить его на границе стираемого блока. Если вы не можете позволить себе время выполнения распаковки, все равно можно использовать ZIP с несжатыми файлами или использовать более простой формат, такой как tar.
Естественно, для NAND-вспышки ситуация совершенно иная. Там я настоятельно рекомендую выбрать установленную (коммерческую или открытую) файловую систему, разработанную для особенностей флэш-памяти NAND.