ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1468608 Топик полностью
Adept (08.10.2024 23:07, просмотров: 141) ответил Nikolay_Po на Вы не: "Всё работает" и "Десятки тысяч", а прямо скажите, паркуете указатель EEPROM или нет?
во немного не в тему топика, но опосредованы касается :) как-то в стародавние времена, налетел 

на баг (неочевидный, искал долго, пока не понял, что аппаратный, а не программный (, но для его "купирования" пришлось замастрячить процедуры мажоритарной работы с EEPROM (чтение/запись/апдейт ячейки) Расход памяти втрое, но зато надёжность высокая. И да, "онлайн" диагностика в придачу. Как обнаружится "сбойная" ячейка, ставлю соответствующий системный флажочек, и или показываю индикацией, или передаю на хост, если есть с ним обмен. Естественно "сбойная ячейка" автоматом переписывалась. И так я проникся беспрецедентно возросшей надёжностью, что критически важные константы/переменные только так и храню теперь :) В общем, если надо быстро купировать проблему, - то такой подход может помочь, и таки да, естественно нужно "парковать" указатель EEPROM и "нулевую" ячейку не использовать.


P.S. А упомянутый аппаратный баг с EEPROM оказался "забавным". МК - мега 16-я, в питании 1000мкф (для обеспечения записи пары байт при внезапном отключении питания), Так вот плавное нарастание питания приводило к неадекватной работе программы на старте и примерно в 0,1% включений - портился EEPROM (один байт, с которого считывалась константа). И да, точно не при выключении, а именно при включении, т.е. нарастании, т.к. я убирал процедуры записи при пропадании питания, и всё равно EEPROM портилась, пока не поставил супервизор (настройки browmout детектора и стартап -тайм, не помогали) :( вот такие были дела. Это наблюдалось только на меге16А, на иксмеге и меге88 такого не было вообще никогда.

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