创建任务:xTaskCreate()
BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 函数指针, 任务函数
const char * const pcName, // 任务的名字
const configSTACK_DEPTH_TYPE usStackDepth, //栈大小,单位为 word
void * const pvParameters, // 调用任务函数时传入的参数
UBaseType_t uxPriority, // 优先级
TaskHandle_t * const pxCreatedTask ); // 任务句柄, 以后使用它来操作这个任务
删除任务:vTaskDelete()
void vTaskDelete(TaskHandle_t xTaskToDelete);//传入任务句柄
句柄为NULL时,删除自己
为自己时,删除自己
为其他任务时,删除其他任务
暂停任务:vTaskSuspend()
void vTaskSuspend(TaskHandle_t xTaskToSuspend);//传入任务句柄
句柄为NULL时,暂停自己
为自己时,暂停自己
为其他任务时,暂停其他任务
恢复任务:vTaskResume()
void vTaskResume(TaskHandle_t vTaskResume);//传入任务句柄
无法自己恢复自己,因为被暂停的任务是无法执行的
其他函数:
uxTaskPriorityGet()
UBaseType_t uxTaskPriorityGet( const TaskHandle_t xTask )//传入任务句柄
此函数用来获取指定任务的优先级,使用INCLUDE_uxTaskPriorityGet函数的话应该定义为1
vTaskPrioritySet()
void vTaskPrioritySet(xTaskHandle pxTask,unsigned
portBASE_TYPEuxNewPriority);
//传入任务句柄,新的优先级
此函数用于改变某一个任务的任务优先级,要使用此函数的话宏
INCLUDE_vTaskPrioritySet应该定义为1
uxTaskGetSystemState():
UBaseType_t uxTaskGetSystemState( TaskStatus_t * const
pxTaskStatusArray,
const UBaseType_t
uxArraySize,
uint32_t * const
pulTotalRunTime )
//说明:
pxTaskStatusArray: 指向 TaskStatus_t 结构体类型的数组首地址,每个任务至少需
要一个TaskStatus_t 结 构 体 , 任 务 的 数 量 可 以 使 用 函 数
uxTaskGetNumberOfTasks()
uxArraySize: 保存任务壮态数组的数组的大小。
pulTotalRunTime: 如果 configGENERATE_RUN_TIME_STATS 为 1 的话此参数用来保存系统总的运行时间。
返回值: 统计到的任务壮态的个数,也就是填写到数组 pxTaskStatusArray 中的个数,此值应该等于函数uxTaskGetNumberOfTasks()的返回值。
如果参数uxArraySize太小的话返回值可能为0
此函数用于获取系统中所有任务的任务壮态,每个任务的壮态信息保存在一个TaskStatus_t类型的结构体里面,
这个结构体里面包含了任务的任务句柄、任务名字、堆栈、优先级等信息,
要使用此函数的话宏 configUSE_TRACE_FACILITY 应该定义为 1