Комментарии 16
Добивайте EEPROM посредством внедрения FRAM.
Классическое решение из флеш памяти:
После стирания у нас все биты в 1.
1. Состояния счетчика можно записывать побитно без стирания как 11111110,11111100,11111000 и т.д.
2. В случае если данные не могут быть равны 0 (например путем добавления бита четности или помехоустойчивых кодов) используем кольцевой буфер, а старые данные забиваем нулями.
После стирания у нас все биты в 1.
1. Состояния счетчика можно записывать побитно без стирания как 11111110,11111100,11111000 и т.д.
2. В случае если данные не могут быть равны 0 (например путем добавления бита четности или помехоустойчивых кодов) используем кольцевой буфер, а старые данные забиваем нулями.
Для побитного обновления счетчика самое лучшее, что мы можем сделать, это использовать коды Грэя, как и сказано в статье. При этом мы получаем не 8 возможных значений счетчика для восьми бит, а все 256.
нет, так же останутся 8 возможных значений. Коды грея работают как 1->0 так и 1->0.
И какая разница в каком порядке занулить если поставить единицу сложно и надо избегать.
И какая разница в каком порядке занулить если поставить единицу сложно и надо избегать.
Коды Грея дают такое же количество комбинаций для одного и того же количества бит, что и прямой код. На двух битах возможно получить четыре разных значения кодов Грэя, на трех битах — восемь разных значений кодов Грея, и т.д.
Код Грея на Википедии
Код Грея на Википедии
Хранение данных в оперативке + ионистор, запись в flash/eeprom только при пропадании основного питания.
Ячейки памяти убивают люди! ;) Писали как-то драйвер по работе с flash, ошиблись в цикле — приращали не адрес, а значение по адресу. Память убивается за несколько секунд…
Ячейки памяти убивают люди! ;) Писали как-то драйвер по работе с flash, ошиблись в цикле — приращали не адрес, а значение по адресу. Память убивается за несколько секунд…
А какую схему заряда ионистора используете? Ведь разряженный он потребует большого тока при старте.
Ионистор защитит только от пропадания питания.
Какая нибудь другая внезапная гадость типа программного\аппаратного сбоя или разрушение устройства не даст записать последние данные (это из обсуждения реализации регистратора в аварии в московском метро).
Какая нибудь другая внезапная гадость типа программного\аппаратного сбоя или разрушение устройства не даст записать последние данные (это из обсуждения реализации регистратора в аварии в московском метро).
надежность оборудования в различных ситуациях закладывается на этапе разработки
вы не можете винить разработчиков за то что ваш регистратор расплавился в жерле вулкана и не сохранил данные
вы не можете винить разработчиков за то что ваш регистратор расплавился в жерле вулкана и не сохранил данные
Про равномерный износ есть ещё этот текст
https://habr.com/ru/articles/706972/
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как избежать износа EEPROM