ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1268722 Топик полностью
il-2 (17.12.2022 10:43, просмотров: 328) ответил bnb62 на Люди, какие бывают изящные решения выхода необслуживаемых микроконтроллерных устройств из нештатных, неопределяемых и тому подобных состояний? не бесконечный цикл, и не гавксобакен. Иначе - что не уничтожит данные в оперативном буфере ?
С этим не все так просто как кажется. У меня на практике получилось так: 

Как написал ниже VladislavS - при нештатке первой попадает под сомнение целостность данных. Ну и на кой над ними трястисть? Нехай пропадщают.

При срабатывании дог-таймера устройство переходит в исходное состояние. У меня (и у тебя?) задача - чтобы оно осталось в том-же состоянии в котором было.

У меня для сохранения того состояния, в которое хочется вернуться при нештатке хватило 1 байта. И этот байт надо беречь как зеницу ока. Несколько копий, отбрасывание невалидных значений... еще что-то - выбирай сам.

При обычном старте этот байт состояния (и его копии) инициализируется начальным значением. При сбросе по дог-таймеру этот байт (и его копии) анализируется. И устройство инициализирует себя в соответствии с состоянием, к которому требуется вернуться. Если это состояние определить невозможно - возвращаемся к исходному.

При нормальной работе устройство должно при смене режимов работы соответственно менять свой(свои) байты состояния.

Про NOINIT тебе уже сказали.

В результате мы имеем при сбросе по дог-таймеру не 1, а много исходных состояний. И это должны быть однозначно инициализируемые состояния, из которых гарантирована нормальная работа.