Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запуск программы
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
virfis
Поискал поиском. но ничего не помогло.
Плата Olimex LPC-E2468. Родной загрузчик давно перетер. Программирую IAR EWARM 5.20. Через JTAG без проблем запускается программа. Если отключить JTAG то программа запускается только через 93 секунды. В cstartup.s PUBLIC __vector_0x14 прописан. Файл конфигурации линкера LPC2468_Flash.icf

Линкер выдает:

Link time: 0.50 (CPU) 2.28 (elapsed)
ielftool --checksum __vector_0x14:4,sum32:2;__vector-__vector+0x1f --verbose C:\IAR_Proj\ARM\NXP\Debug\Exe\NXP.out.tmp C:\IAR_Proj\ARM\NXP\Debug\Exe\NXP.out
IAR ielftool V1.3 [BUILT 2008-06-13 at IAR]
Copyright 2008 IAR Systems AB.
Loading C:\IAR_Proj\ARM\NXP\Debug\Exe\NXP.out.tmp
Calculated checksum for __vector_0x14: 0xb9206e50
Saving ELF file to C:\IAR_Proj\ARM\NXP\Debug\Exe\NXP.out


NXP.out
Converting
ielftool.exe --ihex --verbose C:\IAR_Proj\ARM\NXP\Debug\Exe\NXP.out C:\IAR_Proj\ARM\NXP\Debug\Exe\NXP.hex
IAR ielftool V1.3 [BUILT 2008-06-13 at IAR]
Copyright 2008 IAR Systems AB.
Loading C:\IAR_Proj\ARM\NXP\Debug\Exe\NXP.out
Saving ihex file to C:\IAR_Proj\ARM\NXP\Debug\Exe\NXP.hex

Прога записана через JTAG (J-Link), снимаю его разъем и подаею питание. И все равно стартует только через 93 секунды.
Поэтому вопросы:
1. Как заставить стартовать сразу?
2. Как правильно насроить компилятор чтобы программу можно было записывать во внешнюю flash и запускать ее оттуда через родной загрузчик?
Сергей Борщ
Цитата(virfis @ Oct 6 2008, 14:37) *
без проблем запускается программа. Если отключить JTAG то программа запускается только через 93 секунды.
По какому признаку вы определяете, что программа запустилась?
virfis
В программе светодиодом мигаю раз в секунду.
Сергей Борщ
Цитата(virfis @ Oct 7 2008, 07:56) *
В программе светодиодом мигаю раз в секунду.
А зажгите-ка этот светодиод принудительно в самом начале функции main() или даже в функции __low_level_init(). Он загорится сразу или тоже через 93 сек.?

Как вы отсчитываете эту секунду?
virfis
Я в самом начале main и зажигаю. __low_level_init у меня нет, она идет из библиотеки IAR. Если я жму кнопу Dowload And Debug (или Debug without downloadig), то когда доходит отладчик до main я сразу жму Go и сразу загорается светодиод. Если же я отключаю питание, выдергиваю J-Link, включаю питание, то свеодиод загорается через поторы минуты, замерял по часам.
Сергей Борщ
Цитата(virfis @ Oct 7 2008, 12:30) *
Я в самом начале main и зажигаю.
Хм. Тогда не знаю. Это время не похоже на время срабатывания собаки? В IAR где-то есть режим "подключиться к работающему процессору". Попробуйте использовать его во время паузы и посмотреть, где в этот момент крутится программа.
Что еще может в голову прийти? Нога Reset при подключенном отладчике управляется от него. Если нет отладчика и отвалилась внешняя подтяжка, то токи утечки могут медленно заряжать внешнюю емкость на выводе.
virfis
Фуф, разобрался. В опциях дебаггера стояло использование макро файла Ram.mac. Убрал и стало сразу запускаться. Если бы я зашивал бы прошивку через flash magic как hex , то не было бы такой проблемы.
Но второй вопрос так и остался: Как сделать чтобы программа запускалась из внешней flash памяти? Нужны какое-о особые опции компилятора и т.п.?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.