Переместив некоторый встроенный код в FreeRTOS, у меня осталась интересная дилемма о сторожевом плеере. Таймер сторожевого таймера является обязательным для нашего приложения. Использование FreeRTOS стало для нас огромным благом. Когда приложение было более однозадачным, оно своевременно подавало сторожевой таймер в своем логическом потоке, чтобы мы могли своевременно выполнить логический ход.
С несколькими задачами, хотя это и нелегко. Одна задача может быть связана по какой-то причине, а не с прогрессом, но другая делает все хорошо и добивается достаточного прогресса, чтобы держать сторожевого пса счастливым.
Одна мысль заключалась в том, чтобы запустить отдельную задачу только для того, чтобы накормить сторожевого пса, а затем использовать некоторые счетчики, чтобы другие задачи увеличивались регулярно, когда задача сторожевого таймера гаснет, она будет следить за тем, чтобы все счетчики выглядели так, как будто прогресс все остальные задачи, и если да, продолжайте и кормите сторожевого пса.
Мне любопытно, что сделали другие в таких ситуациях?