将一些嵌入式代码移植到FreeRTOS后,我面临一个有趣的问题:看门狗。看门狗定时器对我们的应用程序至关重要。使用FreeRTOS对我们来说也是一个巨大的福音。当应用程序更多地单任务化时,它会在逻辑流程的适当时点喂养看门狗,以便我们确保任务能够按时进行逻辑进展。
然而,对于多个任务而言,这并不容易。一个任务可能因某种原因而被阻塞,没有进展,但另一个任务正在良好地运行并足够快地取得进展,从而让看门狗得到满足。
其中一个想法是启动一个单独的任务仅用于喂养看门狗,然后使用其他任务定期增加的一些计数器,当看门狗任务滴答作响时,它将确保所有计数器都显示出其他任务正在取得进展的迹象,如果是这样,那么就继续喂养看门狗。
我很好奇其他人在这种情况下所做的事情?