Гость MALLOY2 7 августа, 2009 Опубликовано 7 августа, 2009 · Жалоба Запускаю юкос на 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 приоритета (а его то нету :) ) со всеми вытекающими !. Если в строке 5 поставить брекпоинт и OSPrioHighRdy присвоить руками 63 то OSStartHighRdy(); честно переключает на OSTaskIdle и там крутится пока не придет время переключения после чего система опять падает если руками не править. уже 3 час вожусь где грабли то ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 7 августа, 2009 Опубликовано 7 августа, 2009 · Жалоба уже 3 час вожусь где грабли то ? Посмотрите, может у вас что с размещением таблицы OSUnMapTbl, объявленной как const. Посмотрите, что по этим адресам лежат корретные значения таблицы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 7 августа, 2009 Опубликовано 7 августа, 2009 · Жалоба Все разобрался, дело было в следующем тип INT8U был обьявлен как char вместо unsigned char, когда начал все считать на калькуляторе все всплыло :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться