1. 任务删除API函数
FreeRTOS中任务删除的相关API函数如下:
函数 | 描述 |
---|---|
vTaskDelete() | 删除一个任务 |
其它内部调用函数:
函数 | 描述 |
---|---|
prvGetTCBFromHandle() | 该函数是一个宏定义,获取任务控制块,若参数为NULL,则获取当前正在运行任务的任务控制块 |
taskRESET_READY_PRIORITY() | 清除相应的就绪标志位 |
prvDeleteTCB() | 根据堆栈和任务控制块创建的方式,回收相应的堆栈和任务控制块空间 |
prvResetNextTaskUnblockTime() | 重置下一个任务的解锁时间 |
2. 任务的删除函数vTaskDelete()
任务删除函数使用vTaskDelete(),可以删除一个由xTaskCreate() 或 xTaskCreateStatic()创建的任务。使用此函数,必须将INCLUDE_vTaskDelete 设置为1,在FreeRTOSConfig.h定义中,其函数原型如下:
/********************************************************
参数:xTaskToDelete :需要删除的任务句柄,若为NULL,则删除任务本身
返回:无
*********************************************************/
void vTaskDelete( TaskHandle_t xTaskToDelete )
源代码如下:
void vTaskDelete( TaskHandle_t xTaskToDelete )
{
TCB_t *pxTCB;