Способы защиты от потерь данных при записи на flash?
Доброго времени суток.
Разработка под микроконтроллер stm32f4.
В проекте очень много приходится работать с flash памятью, записывая туда маленькие порции данных. Что бы защитить систему от потери данных при прерывании процесса записи в память, скажем при выключении микроконтроллера, первое что приходит на ум - это дублировать страницы памяти flash и выставлять им флаги текущей рабочей версии, но копирование всей страницы при каждой операции записи выглядит не привлекательно, так как занимает довольно много времени.
Подскажите есть ли какие-то алгоритмы защиты от потери данных для таких случаев.
если не хотите ФС - дублируйте сектора, ставьте им счетчики записи и CRC. если не сошелся CRC - берем другой сектор, если оба валидные - берем тот у которого счетчик больше.
Если надо часто писать какие-то настройки - советую задуматься о внешней FRAM
Думаю для микроконтроллеров, особенно в моём проекте, внедрение файловой системы вещь излишняя. Из-за ограниченности ресурсов системы(как ресурсов памяти, так и процессорного времени).