You are here

FreeRTOS ИПП: vTaskSuspend()

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

Назад: [vTaskPrioritySet()] Вверх: [ИПП: Управление задачами] Вперёд: [vTaskResume()]

 

vTaskSuspend()

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

void vTaskSuspend( TaskHandle_t xTaskToSuspend );

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

Приостановка выполнения любой задачи. Приостановленная задача никогда не получает процессорного времени для работы, независимо от её приоритета.

Параметры:

xTaskToSuspend Дескриптор приостанавливаемой задачи. Передача NULL в качестве аргумента приводит к приостановке вызывающей задачи.

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

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

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

void vAFunction( void )
{
    TaskHandle_t xHandle;

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

    /* ... */

    // Use the handle to suspend the created task.
    /* Используем дескриптор для приостановки созданной задачи. */
    vTaskSuspend( xHandle );

    /* ... */

    /* Созданная задача не будет выполнятся до тех пор, пока другая задача не
    выполнит вызов vTaskResume( xHandle ) */

    /* ... */

    /* Приостанавливаем сами себя. */
    vTaskSuspend( NULL );

    /* Мы не сможем попасть сюда до тех пор, пока другая задача
    не вызовет vTaskResume() с дескриптором этой задачи в качестве параметра */
}

.

Hobby's category: