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更多精彩

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章