Цитата(ArtemKAD @ Sep 14 2011, 16:43)

Правильно - регулярное обновление. Как вариант - выбрать некоторое событие
Регулярное обновление чего? данных в RAM? или данных в EEPROM?
Мне все же схема автора кажется куда более правильной, единственное нужно помочь ему подправить ее напильником:
1. Необходимо иметь несколько копий уставок (обычно две) в энергонезависимой памяти, защищенных контрольной суммой.
2. При старте устройства, необходимо выполнить чтение и верификацию всех копий уставок - прочитать каждую копию и проверить контрольную сумму.
3. Обновить поврежденные копии "до победы", - т.е. записывать уставки и считывать их до тех пор пока все копии не пройдут верификацию.
4. Скопировть любую копию уставок в ОЗУ - после чего работать исключительно с уставками в ОЗУ.
5. После того как копия уставок загружена в ОЗУ - прибор можно считать готовым к работе.
6. При изменении любого параметра в ОЗУ - обновить все копии уставок в энергонезависимой памяти (здесь можно записью без проверок, а можно и "до победы" как в п.3).
энергонезависимая память здесь любое из:
внутренний/внешний eeprom/флеш, SD карточка, MMC, и т.д. и т.п.
Цитата(Laksus @ Sep 16 2011, 10:48)

Возвращаясь к первому вопросу - какая вероятность порчи данных в ram, eeprom, flash?
И вытекающий из первого - нужно ли принимать меры по проверки целостности данных и какие?
Могу дать свои цифры для таких начальных условий: Планируется эксплуатировать устройство 1 год, включать-отключать раз в неделю, BOD выключен, нет внешнего супервизора питания, в программе есть функции записи флеш (команда SPM):
вероятность "порчи" флеш - 100%.
такая же самая вероятность и "порчи" eeprom, при тех же начальных условиях. Всё это из-за 100% "порчи" RAM при выходе питания за допустимые пределы.
Включение BOD - практически полностью убирает возможность искажения RAM по вине железа. Но если в коде будут вызовы SPM, тогда даже с включенным BOD'ом вероятность что-то угробить во флеш/eeprom будет очень высока. Ключевой момент - запись в EEPROM и FLASH - длительная операция, достаточно рубануть питание в момент записи, для того чтобы появилась "порча" данных (данные записались/стерлись не польностью). Делайте выводы.