Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MSP430 & microC/OS aka uC/OS-II: задачи не живут !?!
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Bom_Shankar
После 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
Bom_Shankar
Неужели никто не юзает данную ОСь на MSP430?
Люди, кто юзал, помогите запустить uC/OS-II. Исправил привязку к таймеру (сделал как рекомендуется-вроде бы), теперь входит в каждый(из двух пустых ) тасков раз по3-5 и виснет.

Уважаемые знатоки, как правильно запустить данную ОС?

Заранее спасибо.
jorikdima
а поделитесь портом пожалуйста. Где взяли?
Я вот думаю эту ось взять себе в проект вместо scmRTOS. Не по причине того что лучше, а потому что распространеннее.
Bom_Shankar
Цитата(jorikdima @ Apr 23 2007, 21:08) *
а поделитесь портом пожалуйста. Где взяли?
Я вот думаю эту ось взять себе в проект вместо scmRTOS. Не по причине того что лучше, а потому что распространеннее.


Проблема решена, надо было корректно обрабатывать прерывание - сделал по аналогии с WDT(там пример в порте есть) - заработало.

Порт свободно скачивается с www.micrium.com
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.