freertos任務函數

爲了避免延遲中斷函數處理的發生,只有在檢測到沒有irq處理函數被執行,os纔會任務切換。
如果中斷源的頻率與systic中斷接近時,會造成很長的延時對於任務切換
pendsv通過延遲上下文切換請求,知道所有的中斷完成,爲了達到此目標,pensv是最低優先級,
如果os檢測到irq是活的(IRQ在運行,通過掛起pendsv來延時上下文切換

獲得列表中下一個入口的owner
中斷在此處關閉,來確保在調用xportstartScheduler時不會發生tick
xPortStartScheduler(void)
設置硬件,準備調度器接管,通常設置tick中斷,
prvstartFirstTask()//開始第一個任務,它是分開的函數
會調用svc中斷
#define xPortPendSVHandler PendSV_Handler
r0-r3,r12,pc,xpsr會自動恢復

任務創建 先申請任務堆棧
申請任務控制塊
任務堆棧給任務控制塊
動態標記
初始化任務
添加到就緒列表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章