一,基礎
1,使用這些api函式時前,需要開啟對應的巨集定義。
2,任務控制代碼就是任務控制塊。
3,api函式的名字字尾***fromisr(),說明這類函式只能在中斷服務函式中使用。
4,當前系統中存在的任務數量, 此值=掛起態的任務+阻塞態的任務+就緒態的任務+空閒任務+執行態的任務。
5,idle空閒任務執行時間越多,應用**的壓力越小。
二,函式 vtaskpriorityset():
1,只供freertos系統級使用;使用者級**無法使用,
三,函式 uxtaskgetsystemstate():
1,需要申請記憶體空間
2,任務編號:與任務被建立的順序有關係。數值越小,表示越先被建立。
3,在開啟任務排程器中,有但不限於:空閒任務、定時器服務任務。
四,函式 uxtaskgetstackhighwatermark():
1,此函式相對來說會多耗費一點時間,所以在**除錯階段可以使用,產品發布的時候最好不要使用。
2,五,函式 vtaskgetruntimestats():
1,很有用。
2,建議需要定義乙個「全域性」變數,作為資料儲存區,空間要夠大。
六,函式 vtaskgetruntimestats():
1,我們可以得知任務的執行時間,看看哪些任務比較耗時,然後根據對其進行拆分。
2,
freertos學習之任務排程切換
freertos 的任務具有如下幾種狀態 執行running 就緒ready 阻塞blocked 掛起suspended 除了執行狀態之外的狀態統稱為非執行狀態。因為 freertos 是為單cpu設計的系統,在任何時刻最多只能允許乙個任務處在執行狀態,哪怕看起來好像有多個任務同時在執行 這只是多個...
FreeRTOS任務切換
任務切換一共兩種方式 系統節拍器中斷 呼叫portyield。但是,最終都是產生pendsv中斷。systick異常處理入口 void xportsystickhandler void 開啟中斷 vportclearbaseprifromisr 請求排程 define portyield 系統節拍器...
FreeRTOS空閒任務
空閒任務在啟動排程器的時候被建立 啟動排程器 void vtaskstartscheduler void else endif if xreturn pdpass else else 空閒任務的作用包括 保證系統至少有乙個任務在執行 檢查等待終結列表中是否有任務並釋放它們。空閒任務 static p...