InnovChipELECTRONICS

INNOVCHIP · Практические статьи

Watchdog: контролировать выполнение задач, а не только пульс

Коротко о главном

Регулярное обслуживание watchdog не доказывает работоспособность приложения. Разрешение на обслуживание должно учитывать, выполнили ли контролируемые функции свою работу в отведённые сроки.

Определить признак выполнения

Для измерительной задачи таким признаком может быть завершённое и проверенное измерение. Для обмена — обработка запроса или его контролируемое отклонение. Счётчик в периодическом прерывании не обнаружит зависание основной задачи. Модель отдельных каналов наблюдения за задачами показана в документации Zephyr Zephyr Project — Task Watchdog.

Обосновать допустимое время

Измерьте наибольшую допустимую длительность работы с учётом записи Flash, ожидания шины и запуска. Назначьте задаче срок и определённую реакцию на нарушение. Учтите сон и источник тактирования самого watchdog. Слишком длинный интервал уменьшает ложные срабатывания, но способен сделать обнаружение отказа неприемлемо медленным. Условия старта следует рассматривать отдельно от обычного цикла.

Проверить сам механизм контроля

Преднамеренно заблокируйте одну задачу, оставив таймеры и остальные задачи работающими. Затем, если платформа позволяет контролируемый опыт, проверьте остановку планировщика. Зафиксируйте время обнаружения, состояние выходов и причину перезапуска. После нескольких повторных сбросов устройство должно перейти в предусмотренное диагностическое состояние, а не бесконечно запускать исполнительный механизм.

Контрольный список

  • Определить признак выполнения и срок каждой задачи.
  • Внести зависание при работающем таймере.
  • Проверить причину сброса и повторные перезапуски.

Частые вопросы

Можно просто обслуживать watchdog в прерывании?

Только если такая схема действительно обнаруживает нужные отказы. Независимое периодическое обслуживание может скрывать остановившиеся задачи приложения.

Технические источники

Услуга по теме

Диагностика оборудования

Обсудить проект