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

 
 
 
Reply to this topicStart new topic
> SAM7 + IAR + L-Link + включеный Watchdog, Как запустить Debug?
KAlex
сообщение Aug 8 2007, 08:15
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



При попытке запуска в режиме отладки, J-Link в поцессе загрузки камня, через какое-то время зависает. Поигрался с битами AT91C_SYSC_WDDBGHLT | AT91C_SYSC_WDIDLEHLT, нет эффекта.
Может я чего не учел, или это баг?
Самое противное, что после первой прошивки с включенной собакой, дальнейшая перепрошивка стала невозможной. Вылечил только с помощью J-Flash ARM.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 15 2007, 12:13
Сообщение #2


Гуру
******

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



Цитата(KAlex @ Aug 8 2007, 11:15) *
Может я чего не учел, или это баг?
Мммм.... это не баг. Попробую пояснить. Перед программированием IAR формирует аппаратный ресет. После этого начинает работать зашитая вами программа во флеш и одновременно (а может чуть позже) через JTAG начинается перехват управления и остановка исполнения программы. К моменту перехвата ваша программа успевает выполнить некоторое количество операций и, возможно, включить watchdog (который после этого переинициализировать невозможно и скрипт c-spy не сможет его остановить). Если вы его настраивали с WDDBGHLT, то во время ожидания в точках останова собака будет спать и не мешать отладке. Но процесс прошивки представляет из себя исполнение процессором некоей программы из ОЗУ, с которой IAR общается через JTAG (тот самый загрузчик, который iar/config/flashloader/atmel). И во время исполнения этого кода собака успевает сработать. Мне приходят в голову следующие решения:
- поставить в вашу программу перед инициализацией собаки задержку, чтобы IAR успевал перехватить управление до инициализации собаки.
- перекомпилировать загрузчик, вставив в него периодический сброс собаки. Но для этого потребуется полная версия IAR (или взять от 4.20, которая есть на местном FTP, со всеми глюками которые они могли к последней версии исправить).


--------------------
На любой вопрос даю любой ответ
"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
KAlex
сообщение Aug 16 2007, 07:31
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Спасибо за обстоятельный ответ.
Посмотрел flashloader. Там есть закомментареная строчка с отключением Watchdog. Это она?
И как его перекомпилить? Может проще на IAR-Systems собаку спустить. maniac.gif

В принципе я уже отладился, правда с извращениями.
Типа так: компилю с выключеной собакой, прошиваю через J-Flash. Компилю с включеной, запускаю под дебагом.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 16 2007, 09:17
Сообщение #4


Гуру
******

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



Цитата(KAlex @ Aug 16 2007, 10:31) *
Посмотрел flashloader. Там есть закомментареная строчка с отключением Watchdog. Это она?
Если это именно отключение, а не сброс собаки - то нет. Дело в том, что запрограммировать собаку можно только один раз, и если это уже сделала ваша программа, то загрузчик ничего не сможет изменить.
Цитата(KAlex @ Aug 16 2007, 10:31) *
И как его перекомпилить?
В папке документации полной версии есть файл FlashLoaderGuide.pdf, в нем все подробно расписано.


--------------------
На любой вопрос даю любой ответ
"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

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

 


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


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