vTaskDelete()関数の分析
task. h
void vTaskDelete( TaskHandle_t xTask );
まとめ
xTaskCreate()またはxTaskCreateStatic()を使用して以前に作成したタスクインスタンスを削除します。
削除されたタスクは存在しないため、実行状態にすることはできません。
削除されたタスクハンドルを使用しないでください。
タスクが削除されると、アイドルタスクは、削除されたタスクのスタックとデータ構造(タスク制御ブロック)を保存するために使用されたメモリを解放します。したがって、アプリケーションがvTaskDelete()API関数を使用する場合、アプリケーションはアイドルタスクが処理時間を占有しないようにする必要もあります(アイドルタスク時間は実行状態で割り当てる必要があります)。
カーネル自体によってタスクに割り当てられたメモリのみが、タスクが削除されるときに自動的に解放されます。アプリケーション(カーネルではない)によってタスクに割り当てられたメモリまたはその他のリソースは、タスクが削除されたときにアプリケーションによって明示的に解放する必要があります。
パラメータ
パラメータ | 意味 |
---|---|
xTask | 削除するタスク(メインタスク)のハンドル。タスクのハンドルを取得するには、xTaskCreate()を使用してタスクを作成し、pxCreatedTaskパラメーターを使用するか、xTaskCreateStatic()を使用してタスクを作成し、戻り値を格納するか、xTaskGetHandle()を呼び出すときにタスク名を使用します。タスクは、有効なタスクハンドルの代わりにNULLを渡すことで自分自身を削除できます。 |
戻り値
なし
ルーチンを使用する
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 );
}
}
解説
なし