FreeRTOS學習應用

2021-09-29 16:39:56 字數 1069 閱讀 4033

就緒態:處於就緒態的任務還沒有執行,因為有乙個同優先順序或更高優先順序的任務正在執行。

阻塞態:任務進入阻塞態即任務在等待佇列、訊號量、事件組、通知或互斥訊號量時會進入阻塞狀態。

掛起狀態:任務進入掛起狀態後不能被排程器呼叫進入執行狀態

1.任務優先順序可以分為32個等級,任務優先順序最好設定滿足應用的最小值,能夠減小ram的消耗。

2.數字越低表示任務的優先順序越低,排程器總是有限呼叫高優先順序任務獲得處理器使用權。

1.硬體要執行什麼任務都是在任務函式中實現,任務函式的返回型別一定要為void型別,任務的引數也是void型別指標,任務函式名可以根據實際情況進行定義。

2.不能從任務函式中返回或退出,如果一定要從任務中退出的話那一定要呼叫函式vtaskdelete(null)來刪除此任務。

3.freertos的延時函式,可以呼叫切換的api函式替代,如請求訊號量、佇列等,甚至直接呼叫任務排程器。常用的是freertos的演示函式。

freertos每個任務都有一些屬性進行儲存,freertos把這些屬性集合到一起用乙個結構體來表示,這個結構體叫做人物控制塊:tcb_t

freertos 能夠實現任務之間的切換是因為有任務堆疊的存在, 任務排程器在執行任務切換的時候會將當前的任務cpu暫存器的值等儲存在此任務的任務堆疊中,等到下次切換回這個任務時就會先用堆疊中儲存的值來恢復現場。

用這個函式建立任務需要從freertos的堆中分配記憶體,因此必須提供記憶體管理檔案,新建任務預設是就緒狀態,如果沒有比他更高優先順序那麼這個任務立即進入執行狀態。

靜態建立任務需要使用者指定儲存空間

引數 xtasktodelete:要刪除的任務

FreeRTOS學習筆記( )

任務管理 portbase type xtaskcreate pdtask code pvtaskcode,指向任務函式的指標 const portchar const pcname,任務的文字名字,只會在除錯中用到 unsigned portshort usstackdepth,棧深度 void ...

freeRTOS學習筆記

freertos學習筆記 主要目的記api 1.freertos配置檔案 freertosconfig.h 2.狀態轉換執行就緒阻塞態 掛起態 vtasksuspend 掛起 就緒 vtaskresume 阻塞 就緒 cevent 執行 阻塞 呼叫阻塞api函式3.任務堆疊大小 實際引數 引數x4 ...

FreeRTOS學習記錄

freertos 核心原始碼檔案的編寫遵循 misra 規則。在 freertos 中,使用的資料型別雖然都是標準 c 裡面的資料型別,但是針對不同的處理器,對標準 c 的資料型別又進行了重定義。freertos 中詳細的資料型別重定義在 portmacro.h 這個標頭檔案中實現。具體如下表所示 ...