Наковеркал USB bootloader для lpc23xx. Все делал по аналогии выложенных в исходниках от NXP. С простыми программами все замечательно, но вот намутил программку навороченную(задействанно USB + CAN + 2 UART + SPI), и вижу что пару одних и тех же переменных приходят , по USB, всегда левые, но сама программа работает. Бутлодырь у мя лежит в первых 3х секторах а с 0x3000 адреса идет сама программа. Замечу что если шить все через заводской программатор как положенно с нулевого адреса - то пашет все нормально. В линкере все области ессесно правлю. На зарубежных сайтах подобной проблемы не обнаружил, там либо вообще не пашет, либо пашет, среднего не увидел

Ну прыгаю я вот так, по аналогии в загрузчиках от NXP:
Код
void (*USER_FLASH_START_)(void);
USER_FLASH_START_ = (void (*)(void))0x00003000;
USER_FLASH_START_();
Если отрубить инициализацию USB в бутлодыре (она получается просто тупо прыгает в пользовательскую программу), то левых данных начинает приходить по USB на порядок больше.
Может кто сталкивался или имеется какая догадка?
Еще добавлю, программа через какое-то рандомное время все же повисает, видимо куда-то проваливаясь. Отладчик к сожалению не разведен, посмотреть пока возможности нет.
Сообщение отредактировал jekler - Apr 21 2011, 13:23