структура кода ISR с WDT?

где должен быть сброс Watchdog во встроенном коде с подпрограммой обслуживания прерываний?

в основном цикле или в разделе обслуживания прерываний?


person StevieB    schedule 25.08.2015    source источник


Ответы (1)


Это зависит от вашей архитектуры и требований.

Как правило, сторожевой таймер — это аппаратное обеспечение, являющееся частью микроконтроллера или процессора, которое настраивается с помощью программного обеспечения со значением тайм-аута. Если процессор зависает или возникает какое-либо условие взаимоблокировки, и он не восстанавливается в течение времени ожидания, настроенного для сторожевого таймера, процессор будет сброшен. Таким образом, аппаратный сторожевой таймер будет связан с сигналом сброса процессора. Вы также можете проверить это, имея соответствующий журнал отладки/точку останова в векторе сброса для сброса сторожевого таймера.

Также обратите внимание, что в некоторых архитектурах сторожевой таймер может иметь отдельный вектор прерывания и, следовательно, для него может быть отдельный wdt/специальный вектор, который выполняет только выборочный уровень сброса, а не полный сброс оборудования.

Таким образом, использование WDT зависит от архитектуры и требований.

В некоторых архитектурах WDT может работать в фоновом режиме с низким приоритетом. В случае, если вы не можете работать в фоновом режиме, вам может потребоваться явный запуск для определенных непредвиденных условий, помимо других ранее упомянутых сценариев, таких как взаимоблокировка/зависание. Таким образом, работа в качестве отдельного потока / isr / вызова от основного зависит от вашей архитектуры и требований.

person Karthik Balaguru    schedule 21.10.2015