Análisis de la función vTaskDelete ()
task. h
void vTaskDelete( TaskHandle_t xTask );
Resumen
Elimine la instancia de tarea creada previamente utilizando xTaskCreate () o xTaskCreateStatic ().
La tarea eliminada ya no existe, por lo que no puede ingresar al estado de ejecución.
No intente utilizar el identificador de tarea eliminado.
Cuando se elimina una tarea, la tarea inactiva es responsable de liberar la memoria utilizada para guardar la pila y la estructura de datos (bloque de control de tareas) de la tarea eliminada. Por lo tanto, si la aplicación usa la función vTaskDelete () API, la aplicación también debe asegurarse de que las tareas inactivas no ocupen tiempo de procesamiento (el tiempo de la tarea inactiva debe asignarse en el estado de ejecución).
Solo la memoria asignada a la tarea por el núcleo mismo se liberará automáticamente cuando se elimine la tarea. La memoria u otros recursos asignados a la tarea por la aplicación (no el núcleo) deben ser liberados explícitamente por la aplicación cuando se elimina la tarea.
Parámetro
Parámetro | Significado |
---|---|
xTask | El identificador de la tarea que se va a eliminar (tarea principal). Para obtener el identificador de la tarea, puede usar xTaskCreate () para crear la tarea y usar el parámetro pxCreatedTask, o usar xTaskCreateStatic () para crear la tarea y almacenar el valor de retorno, o usar el nombre de la tarea al llamar a xTaskGetHandle (). Las tareas pueden eliminarse pasando NULL en lugar de un identificador de tarea válido. |
Valor de retorno
Ninguna
Usa rutinas
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 );
}
}
Explicación
Ninguno