tn_task_iactivate()

Разрешен вызов только в прерывании Может привести к переключению контекста

Функция активизирует задачу из прерывания - переводит задачу task из состояния DORMANT в состояние READY.

Вызов:

TN_RETVAL tn_task_iactivate(TN_TCB *task);

Разрешен вызов:

В прерывании

Параметры функции:

task
указатель на TCB активизируемой задачи


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

TERR_WRONG_PARAM
некорректное значение параметра (замечание: данный код возврата возможен только в случае использования сервисов с проверкой параметров)
TERR_NOEXS
попытка активации объекта, не являющегося задачей (замечание: данный код возврата возможен только в случае использования сервисов с проверкой параметров)
TERR_WCONTEXT
попытка активации задачи в контексте задачи или в пользовательской критической секции
TERR_OVERFLOW
активируемая задача находится в состоянии, отличном от DORMANT
TERR_NO_ERR
успешное выполнение


Пример вызова:

extern TN_TCB tcb_Task1  TN_DATA;
 
tn_sys_interrupt (_T3Interrupt)        /* прерывание от таймера */
{
    IFS0bits.T2IF = 0;                 /* сброс флага прерывания */
    tn_task_iactivate(&tcb_Task1);     /* активация задачи tcb_Task1 */
}



К списку сервисов