其他任务相关API

发布于 2023-08-11  387 次阅读


内容纲要

其他任务相关 API 函数

API函数

函数描述

函数详解

1. 函数 uxTaskPriorityGet()

​ 此函数用于获取指定任务的任务优先级,若使用此函数,需在 FreeRTOSConfig.h 文件中设 置配置项 INCLUDE_uxTaskPriorityGet 为 1,此函数的函数原型如下所示:

UBaseType_t uxTaskPriorityGet(const TaskHandle_t xTask);

形参描述

返回值

2. 函数 vTaskPrioritySet()

​ 此函数用于设置指定任务的优先级,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配 置项 INCLUDE_vTaskPrioritySet 为 1,此函数的函数原型如下所示:

void vTaskPrioritySet(
 TaskHandle_t xTask,
 UBaseType_t uxNewPriority);

形参描述

函数 vTaskPrioritySet()无返回值。

3. 函数 uxTaskGetSystemState()

​ 此函数用于获取所有任务的状态信息,若使用此函数,需在 FreeRTOSConfig.h 文件中设置 配置项 configUSE_TRACE_FACILITY 为 1,此函数的函数原型如下所示:

UBaseType_t uxTaskGetSystemState(
 TaskStatus_t * const pxTaskStatusArray,
 const UBaseType_t uxArraySize,
 configRUN_TIME_COUNTER_TYPE * const pulTotalRunTime);

形参描述

返回值

​ 函数 uxTaskGetSystemState()的形参 pxTaskStatusArray 指向变量类型为 TaskStatus_t 的变量 的首地址,可以是一个数组,用来存放多个TaskStatus_t类型的变量,函数 uxTaskGetSystemState() 使用将任务的状态信息,写入到该数组中,形参 uxArraySize 指示该数组的大小,其中变量类型 TaskStatus_t 的定义如下所示:

4. 函数 vTaskGetInfo()

​ 此函数用于获取指定任务的任务信息,若使用此函数,需在 FreeRTOSConfig.h 文件中设置 配置项 configUSE_TRACE_FACILITY 为 1,此函数的函数原型如下所示:

void vTaskGetInfo(
 TaskHandle_t xTask,
 TaskStatus_t * pxTaskStatus,
 BaseType_t xGetFreeStackSpace,
 eTaskState eState);

形参描述

函数 vTaskGetInfo()无返回值。

​ 函数 vTaskGetInfo()的形参 eState 用来表示任务的状态,其变量类型为 eTaskState,变量类 型 eTaskState 的定义如下所示:

形参 eState 用于决定形参 pxTaskStatus 结构体中成员变量 eCurrentState 的值,表示任务的状态,如果传入的 eState 为 eInvalid,那么 eCurrentState 为任务当前的状态,否则 eCurrentState 为 eState。

5. 函数 xTaskGetApplicationTaskTag()

​ 此函数用于获取指定任务的 Tag,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置项 configUSE_APPLICATION_TASK_TAG 为 1,此函数的函数原型如下所示:

TaskHookFunction_t xTaskGetApplicationTaskTag(TaskHandle_t xTask);

形参描述

返回值

6. 函数 xTaskGetCurrentHandle()

​ 此函数用于获取当前 系统正在运行的 任务的任务句柄, 若使用此函数,需在FreeRTOSConfig.h 文件中设置配置项 INCLUDE_xTaskGetCurrentTaskHandle 为 1,此函数的函数原型如下所示:

TaskHandle_t xTaskGetCurrentTaskHandle(void);

函数 xTaskGetCurrentTaskHandle()无形参。

返回值

7. 函数 xTaskGetHandle()

​ 此函数用于通过任务名获取任务句柄,若使用此函数,需在 FreeRTOSConfig.h 文件中设置 配置项 INCLUDE_xTaskGetHandle 为 1,此函数的函数原型如下所示:

TaskHandle_t xTaskGetHandle(const char * pcNameToQuery);

形参描述

返回值

8. 函数 xTaskGetIdleTaskHandle()

​ 此函数用于获取空闲任务的任务句柄,若使用此函数,需在 FreeRTOSConfig.h 文件中设置 配置项 INCLUDE_xTaskGetIdleTaskHandle 为 1,此函数的函数原型如下所示:

TaskHandle_t xTaskGetIdleTaskHandle(void);

函数 xTaskGetIdleTaskHandle()无形参。

返回值

9. 函数 uxTaskGetStackHighWaterMark()

​ 此函数用于获取指定任务 的 任务栈的历史剩余最小值, 若 使用此函数 , 需 在 FreeRTOSConfig.h 文件中设置配置项 INCLUDE_uxTaskGetStackHighWaterMark 为 1,此函数的 函数原型如下所示:

UBaseType_t uxTaskGetStackHighWaterMark(TaskHandle_t xTask);

形参描述

返回值

10. 函数 eTaskGetState()

​ 此函数用于获取指定任务的状态,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置 项 INCLUDE_eTaskGetState 为 1,此函数的函数原型如下所示:

eTaskState eTaskGetState(TaskHandle_t xTask);

形参描述

返回值

11. 函数 pcTaskGetName()

​ 此函数用于获取指定任务的任务名,此函数的函数原型如下所示:

char * pcTaskGetName(TaskHandle_t xTaskToQuery);

形参描述

返回值

12. 函数 xTaskGetTickCount()

​ 此函数用于获取系统时钟节拍计数器的值,此函数的函数原型如下所示:

volatile TickType_t xTaskGetTickCount(void);

函数 xTaskGetTickCount()无形参。

返回值

13. 函数 xTaskGetTickCountFromISR()

​ 此函数用于在中断中获取系统时钟节拍计数器的值,此函数的函数原型如下所示:

volatile TickType_t xTaskGetTickCountFromISR(void);

函数 xTaskGetTickCountFromISR()无形参。

返回值

14. 函数 xTaskGetSchedulerState()

​ 此函数用于获取任务调度器的运行状态,此函数的函数原型如下所示:

BaseType_t xTaskGetSchedulerState(void);

函数 xTaskGetSchedulerState()无形参。

返回值

15. 函数 uxTaskGetNumberOfTasks()

​ 此函数用于获取系统中任务的数量,此函数的函数原型如下所示:

UBaseType_t uxTaskGetNumberOfTasks(void);

函数 uxTaskGetNumberOfTasks()无形参。

返回值

16. 函数 vTaskList()

​ 此函数用于以“表格”的形式获取系统中任务的信息,若使用此函数,需在 FreeRTOSConfig.h 文 件 中 同 时 设 置 配 置 项 configUSE_TRACE_FACILITY 和配置项 configUSE_STATS_FORMATTING_FUNCTIONS 为 1,此函数的函数原型如下所示:

void vTaskList(char * pcWriteBuffer);

形参描述

函数 vTaskList()无返回值。

获取到的任务信息示例

17. 函数 vTaskGetRunTimeStats()

​ 此函数用于获取指定任务的运行时间、运行状态等信息,若使用此函数,需在 FreeRTOSConfig.h 文 件 中 同 时 设 置 配 置 项 configGENERATE_RUN_TIME_STATS 、 configUSE_STATS_FORMATTING_FUNCTIONS、configSUPPORT_DYNAMIC_ALLOCATION 为 1,此函数的函数原型如下所示:

void vTaskGetRunTimeStats(char * pcWriteBuffer);

形参描述

函数 vTaskGetRunTimeState()无返回值。

18. 函数 vTaskSetApplicationTaskTag()

​ 此函数用于设置指定任务的 Tag,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置 项 configUSE_APPLICATION_TASK_TAG 为 1,此函数的函数原型如下所示:

void vTaskSetApplicationTaskTag(
 TaskHandle_t xTask,
 TaskHookFunction_t pxTagValue);

形参描述

函数 vTaskSetApplicationTaskTag()无返回值。

19. 函数 SetThreadLocalStoragePointer()

​ 此函数用于设置指定任务的独有数据数组指针,此函数的函数原型如下所示:

void vTaskSetThreadLocalStoragePointer(
 TaskHandle_t xTaskToSet,
 BaseType_t xIndex,
 void * pvValue)

形参描述

函数 SetThreadLocalStoragePointer()无返回值。

20. 函数 GetThreadLocalStoragePointer()

​ 此函数用于获取指定任务的独有数据数组指针,此函数的函数原型如下所示:

void *pvTaskGetThreadLocalStoragePointer(
 TaskHandle_t xTaskToQuery,
 BaseType_t xIndex);

形参描述

返回值

世界のネズミは彼らが望むものに依存し、彼らは彼ら自身から誰も求めません
最后更新于 2023-08-27