FreeRTOS之vTaskDelete()

vTaskDelete()函数解析

task. h
void vTaskDelete( TaskHandle_t xTask );

总结

删除先前使用xTaskCreate()或xTaskCreateStatic()创建的任务实例。
已删除的任务不再存在,因此无法进入运行状态。
不要试图使用已删除的任务句柄。
当一个任务被删除时,空闲任务负责释放用来保存被删除任务的堆栈和数据结构(任务控制块)的内存。因此,如果应用程序使用了vTaskDelete() API函数,那么应用程序还必须确保空闲任务不会占用处理时间(必须在运行状态下分配空闲任务的时间)。
只有内核本身分配给任务的内存在删除任务时才会自动释放。应用程序(而不是内核)分配给任务的内存或任何其他资源必须在删除任务时由应用程序显式释放。

参数

参数 意义
xTask 要删除的任务的句柄(主任务)。要获取任务的句柄,可以使用xTaskCreate()创建任务并使用pxCreatedTask参数,或者使用xTaskCreateStatic()创建任务并存储返回值,或者在调用xTaskGetHandle()时使用任务的名称。任务可以通过传递NULL来代替有效的任务句柄来删除自身。

返回值

None

使用例程

void vOtherFunction( void )
 {
 TaskHandle_t xHandle = NULL;

     // Create the task, storing the handle.
     xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );

     // Use the handle to delete the task.
     if( xHandle != NULL )
     {
         vTaskDelete( xHandle );
     }
 }

说明

Freertos更多精彩

你可能感兴趣的:(FreeRTOS)