В EEPROMе пусть хранится набор данных с возможностью проверки (CRC, две копии и т.д.) Читаем из EEPROM в RAM когда юзер начал пользоваться прибором, или там вызвал меню. Если такого события нет, то раз в десятки минут - часы. Если данные повреждены, восстанавливаем их из FLASH, где лежит дефолтный набор. Настройки обнуляются - сбой серьёзный, но не смертельный. Если основная программа содержит SPM, проверяем её CRC при включении питания. Не сходится CRC - уходим на бут-лоадер, если он есть, и бесконечно мигаем индикаторами. У меня бывало, слетали и флеш и епром, при больших неприятностях по питанию - например, резко клинит большой коллекторный движок, или лопается мощная галогеновая лампа. Тогда происходят разные электромагнитные процессы, горят предохранители, срабатывают защиты, ну вылетал флеш пару раз...
Сообщение отредактировал Maik-vs - Sep 19 2011, 12:02
|