реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Запуск программы, Как запустить программу?
virfis
сообщение Oct 6 2008, 11:37
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 17-10-05
Из: Краснодар
Пользователь №: 9 732



Поискал поиском. но ничего не помогло.
Плата 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 и запускать ее оттуда через родной загрузчик?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 6 2008, 13:43
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(virfis @ Oct 6 2008, 14:37) *
без проблем запускается программа. Если отключить JTAG то программа запускается только через 93 секунды.
По какому признаку вы определяете, что программа запустилась?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
virfis
сообщение Oct 7 2008, 04:56
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 17-10-05
Из: Краснодар
Пользователь №: 9 732



В программе светодиодом мигаю раз в секунду.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 7 2008, 08:35
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(virfis @ Oct 7 2008, 07:56) *
В программе светодиодом мигаю раз в секунду.
А зажгите-ка этот светодиод принудительно в самом начале функции main() или даже в функции __low_level_init(). Он загорится сразу или тоже через 93 сек.?

Как вы отсчитываете эту секунду?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
virfis
сообщение Oct 7 2008, 09:30
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 17-10-05
Из: Краснодар
Пользователь №: 9 732



Я в самом начале main и зажигаю. __low_level_init у меня нет, она идет из библиотеки IAR. Если я жму кнопу Dowload And Debug (или Debug without downloadig), то когда доходит отладчик до main я сразу жму Go и сразу загорается светодиод. Если же я отключаю питание, выдергиваю J-Link, включаю питание, то свеодиод загорается через поторы минуты, замерял по часам.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 7 2008, 10:01
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(virfis @ Oct 7 2008, 12:30) *
Я в самом начале main и зажигаю.
Хм. Тогда не знаю. Это время не похоже на время срабатывания собаки? В IAR где-то есть режим "подключиться к работающему процессору". Попробуйте использовать его во время паузы и посмотреть, где в этот момент крутится программа.
Что еще может в голову прийти? Нога Reset при подключенном отладчике управляется от него. Если нет отладчика и отвалилась внешняя подтяжка, то токи утечки могут медленно заряжать внешнюю емкость на выводе.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
virfis
сообщение Oct 7 2008, 10:36
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 17-10-05
Из: Краснодар
Пользователь №: 9 732



Фуф, разобрался. В опциях дебаггера стояло использование макро файла Ram.mac. Убрал и стало сразу запускаться. Если бы я зашивал бы прошивку через flash magic как hex , то не было бы такой проблемы.
Но второй вопрос так и остался: Как сделать чтобы программа запускалась из внешней flash памяти? Нужны какое-о особые опции компилятора и т.п.?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th July 2025 - 18:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016