в особо ответственных случаях применяю мажоритарную запись и
чтение/восстановление (соответствующие процедурки для AVR на
ассемблере (там пару-тройку десятков строк кода всего :)) - могу
выложить. Мажоритарное чтение (два из трёх, "голосованием") - эт
понято. Там у меня ещё чтение -проверка-модификация, - т.е. если в
результате чтения найдена сбойная ячейка, то она восстанавливается.
Мегаполезная шняга :) было как-то в одном проекте из-за "статики" предположительно, - слетали настройки в EEPROM меги16. После применения мажоритарных процедур - всё прекратилось :) (пластиковое производства, - пневмотранспорт сырья по пластиковым трубам). Несмотря на кучу антистатических мер, всё равно статики везде хватает. Ещё весьма рекомендую не оставлять в адресном регистре адрес, а обнулять его, и нулевую ячейку EEPROM не использовать. Такая процедура "парковки головок" - тоже применяется (правда в иксмегах особого смысла в этом нет, там другая идеология работы с EEPROM, но в классике и мегах - вполне действенное решение (намучился со слетанием EEPROMA в девайсах, работающих в условиях интенсивных импульсных помех, в своё время (теперь вот "дую на воду" :))) но ничё - помогает (больше проблем с EEPROMом практически не имею :)
Ессно супервизор питания/BrownOut детектор, грамотно настроенный - обязательно. Так же в подсистеме питания д.б. достаточно накопителей (электролитов) для успешного завершения записи. Хорошо бы и подключить компаратор, чтобы ниже определённого уровня питания вообще запрещать запись в EEPROM
минусы мажоритарных процедур - трёхкратный расход EEPROM. Плюсы - бытрота исполнения и относительно высокая надёжность с возможностью коррекции одной из трёх, неправильной ячейки