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

 
 
> IAR, J-Link и прерывания
sgrig
сообщение Jun 7 2006, 11:53
Сообщение #1


Участник
*

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



Прежде чем пойти и тихо удавиться решил попросить совета здесь.

В результате ряда манипуляций с программой, отлаживаемой в IAR ARM v.4.11a
с помощью J-Link из IAR-KIT добился следующего:

В отладчике не работают никакие прерывания, хотя все служебные регистры
читаются как надо.
Вне отладчика - все работает как надо.

Еще несколько часов назад и в отладчике все было отлично. Что случилось, понять
не могу, уже близок к суициду wacko.gif

Буду рад любым соображениям по теме...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Jun 8 2006, 07:19
Сообщение #2


Гуру
******

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



Цитата(sgrig @ Jun 7 2006, 14:53) *
Прежде чем пойти и тихо удавиться решил попросить совета здесь.

В результате ряда манипуляций с программой, отлаживаемой в IAR ARM v.4.11a
с помощью J-Link из IAR-KIT добился следующего:

В отладчике не работают никакие прерывания, хотя все служебные регистры
читаются как надо.
Вне отладчика - все работает как надо.

Еще несколько часов назад и в отладчике все было отлично. Что случилось, понять
не могу, уже близок к суициду wacko.gif

Буду рад любым соображениям по теме...

Было подобное. То генрятся то нет.
Соображения такие: при сбросе отладчиком происходит только сброс ядра, но не контроллера прерываний. Если перед этим обрабатывалось какое-то прерывание и логика контроллера не была сброшена (VICVecAddr = 0 или AIC_EOICR = 0) то следующее прерывание не генерится.
Поборол принудительным сбросом контроллера прерываний в процедуре инициализации.


--------------------
На любой вопрос даю любой ответ
"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
сообщение Jun 8 2006, 12:19
Сообщение #3


Гуру
******

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



Цитата(Сергей Борщ @ Jun 8 2006, 10:19) *
Поборол принудительным сбросом контроллера прерываний в процедуре инициализации.

У меня как правило работает часть прерываний. Можно, конечно попробовать и сбросы всего, что попало в скрипт инициализации добавить. Попробую на досуге.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 8 2006, 17:32
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post



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

 


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


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