函數 uxTaskPriorityGet()
此函數用來查詢指定任務的優先級,要使用此函數的話宏 INCLUDE_uxTaskPriorityGet 應該定義為 1。
函數 vTaskPrioritySet()
此函數用于改變某一個任務的任務優先級,要 使 用 此 函 數 的 話 宏
INCLUDE_vTaskPrioritySet 應該定義為 1。
函數uxTaskGetSystemState()
此函數用于獲取系統重所有任務的任務狀態,每個任務的壯態信息保存在一個 TaskStatus_t類型的結構體里面,這個結構體里面包含了任務的任務句柄、任務名字、堆棧、優先級等信息,要使用此函數的話宏 configUSE_TRACE_FACILITY 應該定義為 1。
函數 vTaskGetInfo()
此寒素也用來獲取任務狀態信息,但是是獲取指定的單個任務的狀態的,任務狀態信息填充到參數 pxTaskStatus 中, 這個參數也是 TaskStatus_t 類型的。
要使用此函數的話宏 configUSE_TRACE_FACILITY 要定義為 1。
函數 xTaskGetApplicationTaskTag()
此函數用于獲取任務的 Tag(標簽)值,任務控制塊中有個成員變量 pxTaskTag 來保存任務的標簽值。標簽的功能由用戶自行決定,此函數就是用來獲取這個標簽值的, FreeRTOS 系統內核是不會使用這個標簽的。
要使用此函數的話宏 configUSE_APPLICATION_TASK_TAG 必須為 1。
函數 xTaskGetCurrentTaskHandle()
此函數用于獲取當前任務的任務句柄。如果要使用此函數的話宏 INCLUDE_xTaskGetCurrentTaskHandle 應該為 1。
函數 xTaskGetHandle()
此函數根據任務名字獲取任務的任務句柄,在使用函數 xTaskCreate()或 xTaskCreateStatic()創建任務的時候都會給任務分配一個任務名,函數 xTaskGetHandle()就是使用這個任務名字來查詢其對應的任務句柄的。要使用此函數的話宏 INCLUDE_xTaskGetHandle 應該設置為 1。
函數 xTaskGetIdleTaskHandle()
此函數用于返回空閑任務的任務句柄。
要使用此函數的話宏 INCLUDE_xTaskGetIdleTaskHandle 必須為 1。
函數 uxTaskGetStackHighWaterMark() (重要)
每個任務都有自己的堆棧,堆棧的總大小在創建任務的時候就確定了。
此函數用于檢查任務從創建好到現在的歷史剩余最小值,這個值越小說明任務堆棧溢出的可能性就越大。FreeRTOS 把這個歷史剩余最小值叫做“高水位線”。
此函數相對來說會多耗費一點時間,所以在代碼調試階段可以使用,產品發布的時候最好不要使用。要使用此函數的話宏 INCLUDE_uxTaskGetStackHighWaterMark 必須為 1。
函數 eTaskGetState()
此函數用于查詢某個任務的運行狀態,比如:運行態、阻塞態、掛起態、就緒態,返回值是個枚舉類型。
要使用此函數的話宏 INCLUDE_eTaskGetState 必須為 1。
函數 pcTaskGetName()
根據某個任務的任務句柄來查詢這個任務對應的任務名。
函數 xTaskGetTickCount()
此函數用于查詢任務調度器從啟動到現在時間計數器 xTickCount 的值。
xTickCount 是系統的時鐘節拍值,并不是真實的時間值。每個滴答定時器中斷 xTickCount 就會加 1,一秒鐘滴答定時器中斷多少次取決于宏 configTICK_RATE_HZ。
函數 xTaskGetTickCountFromISR()
此函數是 xTaskGetTickCount()的中斷級版本,用于在中斷服務函數中獲取時間計數器 xTickCount 的值。
函數 xTaskGetSchedulerState()
此函數用于獲取 FreeRTOS 的任務 調度器運行情況:運行、關閉、還是掛起。
要使用此函數的話宏 INCLUDE_xTaskGetSchedulerState 必須為 1。
函數 uxTaskGetNumberOfTasks()
此函數用于查詢系統當前存在的任務數量。
函數 vTaskList()
此函數會創建一個表格來描述每個任務的詳細信息。
函數 vTaskGetRunTimeStats() (重要)
FreeRTOS 可以通過相關的配置來統計任務的運行時間信息,任務的運行時間信息提供了每個任務獲取到 CPU 使用權總的時間。
要 使 用 此 函 數 的 話 宏 configGENERATE_RUN_TIME_STATS 和configUSE_STATS_FORMATTING_FUNCTIONS 必須都為 1。
如果宏 configGENERATE_RUN_TIME_STATS 為 1 的話還需要實現一下幾個宏定義:
●portCONFIGURE_TIMER_FOR_RUN_TIME_STATS(),此宏用來初始化一個外設來提供時間統計功能所需的時基,一般是定時器/計數器。這個時基的分辨率一定要比 FreeRTOS的系統時鐘高,一般這個時基的時鐘精度比系統時鐘的高 10~20 倍就可以了。
●portGET_RUN_TIME_COUNTER_VALUE()或者
portALT_GET_RUN_TIME_COUNTER_VALUE(Time),這兩個宏實現其中一個就行了,這兩個宏用于提供當前的時基的時間值。