Available Languages?:

tn_task_iresume()

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

Функция предназначена для вывода задачи из состояния SUSPENDED в прерывании.

Если задача находится в состоянии SUSPENDED, она переводится в состояние READY, при этом она будет поставлена в очередь готовых к выполнению последней. Если задача находится в состоянии WAITING_SUSPENDED, она будет переведена в состояние WAITING и продолжит ожидание события.

Вызов:

TN_RETVAL tn_task_iresume (TN_TCB *task);

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

В прерывании

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

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


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

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


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

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



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

 
tnkernel/ref/task/tn_task_iresume.txt · Последние изменения: 21.07.2008 02:18 От admin
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki