FreeRTOS任务的创建和删除

FreeRTOS 最基本的功能就是任务管理,而任务管理最基本的操作就是创建和删除任务。
任务的创建:

BaseType_t xTaskCreate
( 
	TaskFunction_t pxTaskCode,
	const char * const pcName,
	const uint16_t usStackDepth,
	void * const pvParameters,
	UBaseType_t uxPriority,
	TaskHandle_t * const pxCreatedTask 
)

参数:
pxTaskCode: 任务函数。
pcName: 任务名字,一般用于追踪和调试,任务名字长度不能超过。
configMAX_TASK_NAME_LEN。
usStackDepth: 任务堆栈大小,注意实际申请到的堆栈是 usStackDepth 的 4 倍。其中空闲任
务的任务堆栈大小为 configMINIMAL_STACK_SIZE。
pvParameters: 传递给任务函数的参数。
uxPriotiry: 任务优先级,范围 0~ configMAX_PRIORITIES-1。
pxCreatedTask: 任务句柄,任务创建成功以后会返回此任务的任务句柄, 这个句柄其实就是
任务的任务堆栈。 此参数就用来保存这个任务句柄。其他 API 函数可能会使
用到这个句柄。
返回值:
pdPASS: 任务创建成功。
errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY: 任务创建失败,因为堆内存不足!
任务的删除:

vTaskDelete( TaskHandle_t xTaskToDelete )

参数:
xTaskToDelete: 要删除的任务的任务句柄。

猜你喜欢

转载自blog.csdn.net/wsq_666/article/details/111592898