Формат данных флэш-памяти

Я ищу библиотеку устройства хранения данных для того, чтобы хранить данные во флэш-памяти во встроенной системе. Я нахожусь на грани записи пользовательской из-за отсутствия формата с правильным соединением функций и простоты.

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

Хороший имущим был бы простой износ, выравнивающийся / журналирование схем и функций дублирования/надежности данных. Простое журналирование состоит в том, потому что большинство низкоуровневых микросхем флэш-памяти, с которыми я работаю, является самым счастливым, когда Вы пишете от одного конца до другого и запускаетесь наверху. Дублирование/надежность данных могло быть использованием и проверкой битов четности или завершить дополнительные копии.

Какие-либо предложения?

7
задан Brian Tompsett - 汤莱恩 19 November 2015 в 22:05
поделиться

3 ответа

Посмотрите мой вопрос .

Я обнаружил, что fat16 (12) и ELM-Petit FAT File System Module хорошо подходят для моих нужд. Требовалось кодировать только процедуры записи / чтения секторов.

3
ответ дан 7 December 2019 в 05:17
поделиться

JFFS2 - очевидный кандидат. Я использовал его расширяемо с ребятами MIPS и SuperH, но только с NAND. Это дает отличные результаты в выравнивании износа и производительности. Нет, это полноценная файловая система, которая не похожа на то, что вы описываете, но, честно говоря, я не думаю, что вы найдете единственное решение для того, что хотите. Но это может быть простейшее решение: JFFS2 + {SQLite | Protobuf | Berkeley DB }

Надеюсь, что я ошибаюсь, и вы найдете его. : -)

3
ответ дан 7 December 2019 в 05:17
поделиться

Как Роберт и Mtr, я могу порекомендовать FatFs Generic File System Module. Я использую его на Cortex-M3 с 3 логическими устройствами (USB, SD-Card и внешняя Flash). Особенно f_mkfs был очень удобен для получения файловой системы на внешней Flash. Единственное, что мне пришлось кодировать самостоятельно, это низкоуровневые функции ввода/вывода с диска. Если вам не нужна вся функциональность, предоставляемая модулем FatFs, уменьшить размер модуля довольно легко с помощью config.h (не помню названия :D).

Edit: Я выбрал FAT, так как он может быть использован Win и Linux...

2
ответ дан 7 December 2019 в 05:17
поделиться