История изменений
Исправление KivApple, (текущая версия) :
Если логика не предполагает постоянного числодробления, то в rtos можно запихнуть сброс watchdog в idle поток. В итоге он отловит зависание любого другого потока или обработчика прерывания. Он не отловит отвалы периферии, но отловит отвал systick (процессор просто тогда не сможет переключиться на idle задачу), а обычно от него работают и все виртуальные таймеры. Значит достаточно иметь таймауты на все операции с периферией штатными средствами rtos. И при таймаутах что-то делать (и если логика «такого никогда не может быть» ребутать чип, либо уходить в бесконечный цикл, чтобы его грохнул wdt).
Исправление KivApple, :
Если логика не предполагает постоянного числодробления, то в rtos можно запихнуть сброс watchdog в idle поток. В итоге он отловит зависание любого другого потока или обработчика прерывания. Он не отловит отвалы периферии, но отловит отвал systick (процессор просто тогда не сможет переключиться на idle задачу), а обычно от него работают и все виртуальные таймеры. Значит достаточно иметь таймауты на все операции с периферией средствами rtos. И при таймаутах что-то делать (и если логика «такого никогда не может быть» ребутать чип, либо уходить в бесконечный цикл, чтобы его грохнул wdt).
Исходная версия KivApple, :
Если логика не предполагает постоянного числодробления, то в rtos можно запихнуть сброс watchdog в idle поток. В итоге он отловит зависание любого другого потока или обработчика прерывания.