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

 
 
> LPC и т .п. отладка IAR, В очередной раз воевал с ветряными мельницами
Andy Mozzhevilov
сообщение Sep 10 2006, 11:44
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Имею плату от Olimex на LPC2148.
Пытался запустить тестовый пример. С ходу не работал. После некторого времени возни и
поиска ответов на извечные вопросы "кто виноват" и "что делать" виноватого нашел.
Оказалось, что после рестарта таймеру 1 оказывается разрешен счет, разрешено прерывание.
Хотя по ходу программы этого не делается. Зато по ходу программы разрешалось прерывание в VIC.
И как следстивие - получалось периодическое падение системы.
Разбираюсь дальше. Оказывается программа, зашитая во флэш виновата. То есть она запускается,
начианает работать, включает нужную ей периферию, потом по jtag грузится мой новый софт и
запускается, но полноценного ресета не происходит, то есть моя новая программа работает с
периферией, которая настроена той, что во флэш. Переключаюсь на бутлоадер, делаю ресет,
загружаю софт, все ок, таймер выключен.
Вспоминаю, что это уже было раньше, тоже натыкался на такое поведение, но забыл за давностью
и снова прошелся по таким же граблям.
Что делать? Можно ли как-то так настроить систему, чтобы после загрузки и рестарта по jtag кристалл
принимал значения по сбросу для всех регистров? А то по этим граблям надоело ходить.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
zltigo
сообщение Sep 10 2006, 12:06
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Andy Mozzhevilov @ Sep 10 2006, 14:44) *
Можно ли как-то так настроить систему, чтобы после загрузки и рестарта по jtag кристалл
принимал значения по сбросу для всех регистров?

Скриптами (закладочка RDI->Init) через J-Tag после загрузки установить периферию в желаемое состояние. А вообще:
- потереть Flash.
- Не отлаживаться в RAM - все равно она скоро кончится :-)


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Sep 10 2006, 12:26
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(zltigo @ Sep 10 2006, 18:06) *
Цитата(Andy Mozzhevilov @ Sep 10 2006, 14:44) *

Можно ли как-то так настроить систему, чтобы после загрузки и рестарта по jtag кристалл
принимал значения по сбросу для всех регистров?

Скриптами (закладочка RDI->Init) через J-Tag после загрузки установить периферию в желаемое состояние.


Думал об этом, но у кажного чипа своя периферия. Можно конечно, прописать.
Потом, это происходит в нужный момент, то есть после этого уже связь jtag не обрывается?
Как я понял, в процессе загрузки кристалл все же несколько раз из флэша рестартует, на
разных этапах.

Цитата
А вообще:
- потереть Flash.
- Не отлаживаться в RAM - все равно она скоро кончится :-)


В RAM удобно начинать заводить чип. Когда код еще не очень большой и лезет туда, а загрузка
проходит значительно быстрее.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 10 2006, 13:10
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Andy Mozzhevilov @ Sep 10 2006, 15:26) *
Потом, это происходит в нужный момент, то есть после этого уже связь jtag не обрывается?

Все нормально.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 10 2006, 20:30
Сообщение #5


Гуру
******

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



Цитата(Andy Mozzhevilov @ Sep 10 2006, 15:26) *
Потом, это происходит в нужный момент, то есть после этого уже связь jtag не обрывается?
Как я понял, в процессе загрузки кристалл все же несколько раз из флэша рестартует, на
разных этапах.
Полноцнный ресет (дерганьем ногой) ИАР делает только один раз - при старте отладчика. Ето прописано мелкими буквами в хелпе. После этого кнопка "ресет" сбрасывает только ядро. Скрипты можно дописать в ExecUserReset, тогда они будут делать инициализацию при нажатии на иконку "ресет". Маленькая проблема в том, что не всю периферию можно проинитить в исходное состояние даже скриптами :-(


--------------------
На любой вопрос даю любой ответ
"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
zltigo
сообщение Sep 10 2006, 20:51
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Короче - при отладке из RAM cтереть Flash и не маяться с проблемами созданными на ровном месте и главное с размышлениями на тему "есть ли из-за этого проблемы".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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