|
IAR, J-Link и прерывания |
|
|
|
Jun 7 2006, 11:53
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-11-05
Из: Tomsk
Пользователь №: 10 464

|
Прежде чем пойти и тихо удавиться решил попросить совета здесь. В результате ряда манипуляций с программой, отлаживаемой в IAR ARM v.4.11a с помощью J-Link из IAR-KIT добился следующего: В отладчике не работают никакие прерывания, хотя все служебные регистры читаются как надо. Вне отладчика - все работает как надо. Еще несколько часов назад и в отладчике все было отлично. Что случилось, понять не могу, уже близок к суициду Буду рад любым соображениям по теме...
|
|
|
|
|
 |
Ответов
|
Jun 8 2006, 07:19
|

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

|
Цитата(sgrig @ Jun 7 2006, 14:53)  Прежде чем пойти и тихо удавиться решил попросить совета здесь. В результате ряда манипуляций с программой, отлаживаемой в IAR ARM v.4.11a с помощью J-Link из IAR-KIT добился следующего: В отладчике не работают никакие прерывания, хотя все служебные регистры читаются как надо. Вне отладчика - все работает как надо. Еще несколько часов назад и в отладчике все было отлично. Что случилось, понять не могу, уже близок к суициду Буду рад любым соображениям по теме... Было подобное. То генрятся то нет. Соображения такие: при сбросе отладчиком происходит только сброс ядра, но не контроллера прерываний. Если перед этим обрабатывалось какое-то прерывание и логика контроллера не была сброшена (VICVecAddr = 0 или AIC_EOICR = 0) то следующее прерывание не генерится. Поборол принудительным сбросом контроллера прерываний в процедуре инициализации.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jun 8 2006, 17:32
|

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

|
Цитата(zltigo @ Jun 8 2006, 15:19)  Цитата(Сергей Борщ @ Jun 8 2006, 10:19)  Поборол принудительным сбросом контроллера прерываний в процедуре инициализации.
У меня как правило работает часть прерываний. Можно, конечно попробовать и сбросы всего, что попало в скрипт инициализации добавить. Попробую на досуге. Может не совсем правильно выразился, вот sgrig понял. Под сбросом я понимал вот что: Цитата VICVectAddr: Writing to this register does not set the value for future reads from it. Rather, this register should be written near the end of an ISR, to update the priority hardware. Почему-то мне запомнилась фраза "This will reset VIC logic", хотя сейчас в мануале ее не нашел, видимо сам ассоциативно выдумал ;-). Для AT91 аналогичное происходит при записи в EOICR.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
sgrig IAR, J-Link и прерывания Jun 7 2006, 11:53 zltigo Цитата(sgrig @ Jun 7 2006, 14:53) Прежде ... Jun 7 2006, 13:16 sgrig Все страньше и страньше..
Воспользовался Вашим со... Jun 8 2006, 03:10 zltigo Цитата(sgrig @ Jun 8 2006, 06:10) Естеств... Jun 8 2006, 06:35 vesago У меня МТлинк и даже не 5 версии. Работаю через RD... Jun 8 2006, 07:31 sgrig Огромное спасибо всем за участие.
Дело кончилось ... Jun 8 2006, 07:51 sgrig Если поставить точку останова в прерывании, а зате... Jun 8 2006, 12:37 zltigo Попробовал. Как и следовало ожидать, строка
... Jun 8 2006, 18:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|