Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: При запуске OS проц улетает
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > uC/OS-II
MALLOY2
Запускаю юкос на TI 6474

Взял самый примитивный код

Код
void main (void)
{
    OSInit();
    OSStart();             
    printf("FATAL return from OSStart");
}


При таком коде операционка должна крутится все время в Idle. Но проц улетает в ексепшен. Сначала грешил на порт но потом начал разбираться и наступил на какие то грабли.

Разберательстава привели к ....

Код
1 void  OSStart (void)
2 {
3    if (OSRunning == OS_FALSE) {
4        OS_SchedNew();                               /* Find highest priority's task priority number   */
5        OSPrioCur     = OSPrioHighRdy;
6        OSTCBHighRdy  = OSTCBPrioTbl[OSPrioHighRdy]; /* Point to highest priority task ready to run    */
7        OSTCBCur      = OSTCBHighRdy;
8        OSStartHighRdy();                            /* Execute target specific code to start task     */
9    }
10}


в строке 4 вызывается OS_SchedNew(); кооторая меняет OSPrioHighRdy (как по мне эта функция должна возвращать значение а не менять глобальную переменную) так вот после вызова OSPrioHighRdy == 0, соответственно далее из таблицы OSTCBPrioTbl выбирает указатель 0 приоритета (а его то нету smile.gif ) со всеми вытекающими !. Если в строке 5 поставить брекпоинт и OSPrioHighRdy присвоить руками 63 то OSStartHighRdy(); честно переключает на OSTaskIdle и там крутится пока не придет время переключения после чего система опять падает если руками не править.

уже 3 час вожусь где грабли то ?
Andy Mozzhevilov
Цитата(MALLOY2 @ Aug 7 2009, 17:24) *
уже 3 час вожусь где грабли то ?

Посмотрите, может у вас что с размещением таблицы OSUnMapTbl, объявленной как const.
Посмотрите, что по этим адресам лежат корретные значения таблицы.
MALLOY2
Все разобрался, дело было в следующем тип INT8U был обьявлен как char вместо unsigned char, когда начал все считать на калькуляторе все всплыло smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.