You are here

FreeRTOS ИПП: vTaskPrioritySet()

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

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

 

vTaskPrioritySet()

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

void vTaskPrioritySet( TaskHandle_t xTask,
                       UBaseType_t uxNewPriority );

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

Установка приоритета любой задачи.

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

Параметры:

xTask
Дескриптор запрашиваемой задачи. Передача NULL в качестве аргумента приводит к установке приоритета вызывающей задачи.
uxNewPriority Приоритет, который будет установлен задаче. Приоритет проверяется ловушкой ошибок (макрос configASSERT). Значение должно быть меньше, чем configMAX_PRIORITIES. Если макрос  configASSERT не определён, приоритет будет молча ограничен значением (configMAX_PRIORITIES - 1).

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

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

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

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

    /* ... */

    /* Используем дескриптор для увеличения приоритета созданной задачи. */
    vTaskPrioritySet( xHandle, tskIDLE_PRIORITY + 1 );

    /* ... */

    /* Используем аргумент-дескриптор NULL для увеличения приоритета данной задачи до 
    такого же значения. */
    vTaskPrioritySet( NULL, tskIDLE_PRIORITY + 1 );
}
Hobby's category: