Перевод может содержать ошибки. Читайте первоисточник: FreeRTOS Task Creation API Functions - vTaskDelete()
[xTaskCreateRestrictedStatic()] | Вверх: [ИПП: Создание задач] | Вперёд: [vTaskDelay()] |
Функция объявляется в файле 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 );
}
}