1. 程式人生 > >FreeRTOS獨立看門狗檢測任務執行狀態

FreeRTOS獨立看門狗檢測任務執行狀態

為了保證FreeRTOS的所有使用者任務都在正常的執行,我們通過獨立看門狗的形式來檢測,一旦發現有某個任務長時間沒有執行,看門狗就會將系統復位。

執行條件:

建立5個使用者任務Task1,Task2,Task3,Task4和Task5。其中Task5的優先順序最高,然後依次是Task4,Task3,Task2,Task1。

任務Task1到Task4定期發事件標誌給任務Task5,表示任務執行正常。

實現思路:

喂狗程式放在最高優先順序的任務Task5裡面,其他的4個任務都定期的向最高優先順序任務傳送事件標誌,只有四個任務都發來了事件標誌才進行喂狗。

看門狗的事件設定多少合適呢?這樣根據四個任務的最大發送事件標誌間隔來確定。

推薦在最高優先順序任務裡面實現喂狗,這樣才可以保證其他低優先順序任務發來了事件標誌後,Task5可以及時的喂狗。如果放在一個低優先順序的任務裡面會存在問題,比如所有的任務都已經發送了表示自己正常執行的事件標誌,但是此低優先順序任務在執行喂狗程式前被其他高優先順序佔用了,造成不能及時喂狗,從而導致系統復位,這種判斷會使得系統不能夠正常工作。