Вступить в клуб →
лёгкаявопросПрошивка: память, загрузчик и надёжность

Контроллер завис в поле, но сторожевой таймер его не перезагрузил

Независимый сторожевой таймер (IWDG) настроен на 2 секунды. Чтобы он «никогда не срабатывал зря», его сбрасывают в обработчике системного таймера:

void SysTick_Handler(void) {
    HAL_IncTick();
    HAL_IWDG_Refresh(&hiwdg);
}

Устройство на объекте зависло в бесконечном цикле ожидания ответа модема и не перезагрузилось. Почему?

  • SysTick работает и при зависшем главном цикле
  • IWDG нельзя сбрасывать чаще раза в секунду
  • В прерывании IWDG сбрасывается не полностью
  • 2 секунды слишком мало для срабатывания IWDG

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела