ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1268999 Топик полностью
Adept (18.12.2022 18:46 - 19:13, просмотров: 202) ответил bnb62 на Спасибо. Понял про надежду в разных уголках матрицы, авось... В общем - это почти стандартный метод - обязательно иметь и сохранять текущую структуру системы, и даже лог событий читаемый при программном __NVIC_SystemReset(); Эдак и движемся от автоматов к ИИ встраиваемых систем :)
вариант "умного" контроллера SSD EEPROM, который размазывает ресурс записи по всему массиву EEPROM, опускаем (это отдельная тема вообще-то :) а вот наиболее простой в реализации метод - мажоритарная работа с EEPROM - неплохой вариант (требуется тройной расход памяти) У меня так сделано в наиболее ответственных проектах, где сохранность EEPROM крайне важна. 

библиотека мажоритарной работы с памятью состоит из процедур Mj_EEPROM_Read, Mj_EEPROM_Update (ну ещё несколько служебных внутренних :) под данные резервируется не байт, а, соответсвенно три подряд идущих (для маньяков, легко сделать разнесёнными на разные страницы :) Процедура Update - исходя из названия, переписывает заданным значением все три байта (при условии, что их значение не совпадают с данными записи. Процедура Read, - соответственно чтение - она же процедура модификации, если во время чтения оказывается, что какой-то байт (один из трёх) отличный от того, что должно быть (два из трёх), - он переписывается, а в "S.M.A.R.T."- журнал (4 байта) EEPROM заносится информация, что был сбой (там у меня просто счётчик 8-битный сбойных байт, 2 байта плотности сбоев (условная карта EEPROM 8 областей по 2 бита на область, т.е. 3 градации плотности сбоев (ща глянул как оно там сделано, за давностью лет запамятовал как) - (0 - без сбоев, 1 - исправимые сбои, 2 - дохлый байт в мажоритарной ячейке, т.е. нет резервирования, 3 - дохлая мажоритарная ячейка (два из трёх байт) - т.е. вся область непригодна) , и байт флагов (там флаги , что редкий одиночный сбой, массовый сбой, частый сбой, EEPROM (целиком или зонами) непригодна, ну и ещё пара служебных, оно во много дублирует предыдущие два, но для анализа удобнее отдельный байт флагов) больше под журнал было жалко отдавать :)

Вообще мой доморощенный S.M.A.R.T. - сервис, в основном только интересная игрушка (но диагностику надёжности обеспечивает) :) Ежели по-уму, то памяти под него надо сильно больше, и прикручивать ремап сбойных ячеек, но руки до этого никак не доходят, и я ещё не настолько маньяк :)) Редкие практические сбои целиком купируются применением мажоритарного резервирования.

...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)