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

 
 
> 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
 
Start new topic
Ответов (1 - 3)
Bom_Shankar
сообщение Apr 23 2007, 16:54
Сообщение #2


Участник
*

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



Неужели никто не юзает данную ОСь на MSP430?
Люди, кто юзал, помогите запустить uC/OS-II. Исправил привязку к таймеру (сделал как рекомендуется-вроде бы), теперь входит в каждый(из двух пустых ) тасков раз по3-5 и виснет.

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

Заранее спасибо.
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Apr 23 2007, 20:08
Сообщение #3


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



а поделитесь портом пожалуйста. Где взяли?
Я вот думаю эту ось взять себе в проект вместо scmRTOS. Не по причине того что лучше, а потому что распространеннее.
Go to the top of the page
 
+Quote Post
Bom_Shankar
сообщение May 3 2007, 13:53
Сообщение #4


Участник
*

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



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


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

Порт свободно скачивается с www.micrium.com
Go to the top of the page
 
+Quote Post

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

 


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


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