Микроконтроллеры | А кто как организует в своих программах контроль завершённости |
|
---|---|---|
А по русски написать можно ? Если касаемо детектирования того, что посреди программы питание сняли - дык я внешнюю FRAM I2C ППЗУшку аж на 256 байт применял (оны нынче зело подешевели) - периодически в ячейку пишу номер шага программы и контрольную сумму этого намера + номер записи по очереди - и так в режиме "кольца". По включению питания смотрим - ага - что-то во FRAM записано и это ЖЖЖ не с проста. Начинаем читать и ищем запись с максимальным номером - проверяем контрольную сумму - если не совпала - значит питание во время записи рубанули и данные неликвидны откатываемся на 1 записи назад и восстанавливаем состояние программы. (в данном случае инкрементный энкодер прикидывается абсолютным) - уже года 2 работает. Некручение энкодера по откл питания - вопрос самотормозящегося червячного редуктора. |
|
|
Дык.. дон, про КОНТРОЛЬ начал. И сразу переехал на ВОССТАНОВЛЕНИЕ.....мысль держи, не упускай... |
|
|
Дон Амброзио: нужно хранить каждую запись в 4-х экземплярах |
|
|
1. Во флэшке выделяется байт управления транзакцией. |
|
|
chav1961: 1. Во флэшке выделяется байт управления транзакцией. |
|
|
С CRC крайне редко, но могут возникать ошибки. К примеру, новая информация образована от старой перестановкой четных и нечетных байт. В этом случае при прерывании записи после четного байта "старая" контрольная сумма оказывается верной. Просто CRC описывает свойства данных, а не состояние операции как таковой. Впрочем, если не выделываться, тогда и CRC подойдет |
|
|
По-моему, CRC меняется при перестановке байт. Может быть, вы спутали понятия "контрольная сумма" и "циклическая контрольная сумма"? Тема мне напомнила похожие процессы, которые приходилось делать при чтении-модификации-записи большого файла ХХХ. Там часть файла читалась в озу, правилась, затем создавался новый файл под именем YYY, модифицированный файл переписывался в него покластерно, старый файл переименовывался в ZZZ, после этого файл YYY переименовывался в ХХХ. В любом случае, при любом сбое или ошибке записи, на диске оставалась неповреждённая копия старого и/или модифицированного файла. |
|
|
Если CRC - "Cyclic Redundancy Code" - тогда спутал. |
|
|
CRC великое множество. Я вот такой бибилотекой пользуюсь |
|
|
chav1961: Вопрос решен десятилетия назад, между прочим. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |