Перейти к содержанию
    

LPC и т .п. отладка IAR

Имею плату от Olimex на LPC2148.

Пытался запустить тестовый пример. С ходу не работал. После некторого времени возни и

поиска ответов на извечные вопросы "кто виноват" и "что делать" виноватого нашел.

Оказалось, что после рестарта таймеру 1 оказывается разрешен счет, разрешено прерывание.

Хотя по ходу программы этого не делается. Зато по ходу программы разрешалось прерывание в VIC.

И как следстивие - получалось периодическое падение системы.

Разбираюсь дальше. Оказывается программа, зашитая во флэш виновата. То есть она запускается,

начианает работать, включает нужную ей периферию, потом по jtag грузится мой новый софт и

запускается, но полноценного ресета не происходит, то есть моя новая программа работает с

периферией, которая настроена той, что во флэш. Переключаюсь на бутлоадер, делаю ресет,

загружаю софт, все ок, таймер выключен.

Вспоминаю, что это уже было раньше, тоже натыкался на такое поведение, но забыл за давностью

и снова прошелся по таким же граблям.

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

принимал значения по сбросу для всех регистров? А то по этим граблям надоело ходить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

принимал значения по сбросу для всех регистров?

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

- потереть Flash.

- Не отлаживаться в RAM - все равно она скоро кончится :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

принимал значения по сбросу для всех регистров?

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

 

Думал об этом, но у кажного чипа своя периферия. Можно конечно, прописать.

Потом, это происходит в нужный момент, то есть после этого уже связь jtag не обрывается?

Как я понял, в процессе загрузки кристалл все же несколько раз из флэша рестартует, на

разных этапах.

 

А вообще:

- потереть Flash.

- Не отлаживаться в RAM - все равно она скоро кончится :-)

 

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

проходит значительно быстрее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потом, это происходит в нужный момент, то есть после этого уже связь jtag не обрывается?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потом, это происходит в нужный момент, то есть после этого уже связь jtag не обрывается?

Как я понял, в процессе загрузки кристалл все же несколько раз из флэша рестартует, на

разных этапах.

Полноцнный ресет (дерганьем ногой) ИАР делает только один раз - при старте отладчика. Ето прописано мелкими буквами в хелпе. После этого кнопка "ресет" сбрасывает только ядро. Скрипты можно дописать в ExecUserReset, тогда они будут делать инициализацию при нажатии на иконку "ресет". Маленькая проблема в том, что не всю периферию можно проинитить в исходное состояние даже скриптами :-(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...