реклама на сайте
подробности

 
 
> MSP430 & microC/OS aka uC/OS-II: задачи не живут !?!, После OStimDly(x) задача больше не просыпается...
Bom_Shankar
сообщение Apr 13 2007, 11:45
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 15-12-06
Пользователь №: 23 554



После OStimDly(x) задача больше не просыпается!
При этом в обработчике прерывания таймера периодически запускается OSTimeTick(); А в ядре счётчик обратного отсчёта времени ожидания для задачи уменьшается до 0 и срабатывает условие перевода задачи в состояние Ready (но возврата в задачу не происходит, других приоритетныхзадач нет)
---------------------------------------------------------------
ptcb = OSTCBList; /* Point at first TCB in TCB list */
while (ptcb->OSTCBPrio != OS_IDLE_PRIO) { /* Go through all TCBs in TCB list */
OS_ENTER_CRITICAL();
if (ptcb->OSTCBDly != 0) { /* No, Delayed or waiting for event with TO */
if (--ptcb->OSTCBDly == 0) { /* Decrement nbr of ticks to end of delay */
/* Check for timeout */
if ((ptcb->OSTCBStat & OS_STAT_PEND_ANY) != OS_STAT_RDY) {
ptcb->OSTCBStat &= ~OS_STAT_PEND_ANY; /* Yes, Clear status flag */
ptcb->OSTCBPendTO = TRUE; /* Indicate PEND timeout */
} else {
ptcb->OSTCBPendTO = FALSE;
}

if ((ptcb->OSTCBStat & OS_STAT_SUSPEND) == OS_STAT_RDY) { /* Is task suspended? */
----------------------------------->OSRdyGrp |= ptcb->OSTCBBitY; /* No, Make ready */
OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;
}
--------------------------------------------------------------------------------------------------------
Кто-нибудь успешно использовал порт uC/OS-II для MSP430?
Заранее спасибо.
shanti_shanti@mail.ru
P.S. В аттаче main.c и os_cfg.h
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 06:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01341 секунд с 7
ELECTRONIX ©2004-2016