Делал такое для EEPROM в AT89S8253. Память программ была с CRC16 и проверялась однократно при старте. В EEPROM было две копии тоже с CRC16. При старте проверялось правильность обеих копий. Если одна битая - восстанавливалась, если обе - стоп. На макете (с коротышами, временами нестабильным питанием и т.п.) - работало устойчиво. Процедура восстановления проверена путем намеренной порчи EEPROM.Правда прибор застыл на стадии разводки ПП и на испытания не попал.