You are here

FreeRTOS ИПП: vTaskDelete()

Перевод может содержать ошибки. Читайте первоисточник: FreeRTOS Task Creation API Functions - vTaskDelete()

[xTaskCreateRestrictedStatic()] Вверх: [ИПП: Создание задач] Вперёд: [vTaskDelay()]

 

vTaskDelete()

Функция объявляется в файле task.h

void vTaskDelete( TaskHandle_t xTask );

Настройка INCLUDE_vTaskDelete в файле FreeRTOSConfig.h должна быть установлена в 1. Без этого функция недоступна.

Исключает задачу из списка управленых ядром ОСРВ. Удаляемая задача будет исключена из всех списков готовых, заблокированных и приостановленных задач и событий.

Примечание: задача простоя отвечает за освобождение выделенной памяти ядра RTOS от удалённых задач. Поэтому важно, чтобы у задача простоя не лишалась процессорного времени, если приложение ваше выполняет какие-либо вызовы vTaskDelete(). При этом память, выделенная кодом задачи во время выполнения, не освобождается автоматически, следовательно должна быть явно освобождена перед удалением задачи.

Параметры:

xTask  Указатель на дескриптор удаляемой задачи. Передача NULL в качестве параметра приведёт к удалению вызывающей задачи.

Возвращаемое значение:

Отсутствует.

Пример использования:

void vOtherFunction( void )
{
    TaskHandle_t xHandle = NULL;

    // Создаём задачу, сохраняем дескриптор.
    xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );

    // Используем дескриптор для удаления задачи.
    if( xHandle != NULL )
    {
        vTaskDelete( xHandle );
    }
}
Hobby's category: