Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Самодельный bootloader косячит
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
jekler
Наковеркал USB bootloader для lpc23xx. Все делал по аналогии выложенных в исходниках от NXP. С простыми программами все замечательно, но вот намутил программку навороченную(задействанно USB + CAN + 2 UART + SPI), и вижу что пару одних и тех же переменных приходят , по USB, всегда левые, но сама программа работает. Бутлодырь у мя лежит в первых 3х секторах а с 0x3000 адреса идет сама программа. Замечу что если шить все через заводской программатор как положенно с нулевого адреса - то пашет все нормально. В линкере все области ессесно правлю. На зарубежных сайтах подобной проблемы не обнаружил, там либо вообще не пашет, либо пашет, среднего не увидел sm.gif
Ну прыгаю я вот так, по аналогии в загрузчиках от NXP:
Код
                  void (*USER_FLASH_START_)(void);
                    USER_FLASH_START_ = (void (*)(void))0x00003000;
                    USER_FLASH_START_();


Если отрубить инициализацию USB в бутлодыре (она получается просто тупо прыгает в пользовательскую программу), то левых данных начинает приходить по USB на порядок больше.
Может кто сталкивался или имеется какая догадка?

Еще добавлю, программа через какое-то рандомное время все же повисает, видимо куда-то проваливаясь. Отладчик к сожалению не разведен, посмотреть пока возможности нет.
yashok
А как был решен вопрос с прерываниями или в основной программе Вы их не используете??
jekler
Отключал перед прыжком, результата не было. Если по аналогии от NXP бутлодырей( делал по примеру их юсб загрузчика с флэшки), то в них ничего перед прыжком не делается, правда нет возможности протестить их загрузчик, возможно также бы косячил.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.