|
Прерывания в пошаговом режиме Keil |
|
|
|
Oct 24 2016, 23:45
|

Местный
  
Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264

|
Доброй ночи.
Интересует вопрос, почему в Keil uVision Cortex M4 (STM32F4) в режиме отладки по SWD (ST-Link) не заходит в прерывания в пошаговом режиме? Да не только даже в пошаговом. В режиме Step Over тоже, при этом в регистрах NVIC контроллера и в регистрах флагов прерываний самой периферии (SPI) вижу, что прерывание генерируется, в NVIC оно в состоянии Pending, но прерываний больше никаких нет, все разрешены, казалось бы, пожалуйста - бери на себя процессорное время да выполняйся, а нет, не хочет - причем так глюкованно ведет себя, что совсем не понятно. В режиме пошаговой отладки прерывания не вызываются НИКОГДА. В режиме Step Over они вызываются при вызове функции, в которой при записи регистра вызывается прерывание по завершению передачи. Я его ловлю когда делаю Step Over над этой функцией. Ну а если выполнить запись в регистр Single Step-ом, увидеть в NVIC что прерывание ушло в Pending (при этом в периферии тоже видно, что флажок установился на запрос прерывания), то стоит разместить чуть дальше (да хоть на следующей строчке) брэкпоинт, или выполнить до курсора - то прерывание выполняется.
С чем связано такое поведение?
|
|
|
|
|
 |
Ответов
|
Oct 25 2016, 14:06
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(Arlleex @ Oct 25 2016, 01:45)  В режиме пошаговой отладки прерывания не вызываются НИКОГДА. Определите, что такое "не вызываются"? Вообще не исполняется код обработчика прерывания, или отладчик не входит в код обработчика прерывания при пошаге, хотя таковое наверняка щелкает? Если первое - не верю. Даже объяснять не буду, почему. Если второе - то слава провидению и программистам отладчика! Если при пожаговом исполнении попадать в прерывания, то НИКОГДА не получится отладить "синхронный" код, поскольку будете только и делать, что попадать в прерывания. И я на такое наткнулся: использовал какую-то плату Discovery со встроенным, как известно, ST-Link. Так вот (как раскопал и устанил), из-за старой версии драйвера ST-Link и новой прошивки последнего при каждом шаге отладки влетал в какую-нибудь процедуру IRQ. Хотите стать в IRQ - поставьте там точку останова.
|
|
|
|
|
Oct 26 2016, 20:08
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(KnightIgor @ Oct 25 2016, 17:06)  Если первое - не верю. Даже объяснять не буду, почему. Верьте - не верьте, но в IAR например даже галка такая специальная есть: "Запрет прерываний в пошаговом режиме" (как то так называется). И, если её поставить, именно вызываться ISR не будет. Всегда её ставлю. Но только при "шагании"; при step over функции прерывание может успеть обработаться. Как я понимаю, при каждом шаге, отладчик просто делает временный запрет прерываний. Вероятно подобная галка может быть где-нить и в Keil.
|
|
|
|
|
Oct 27 2016, 20:50
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(jcxz @ Oct 26 2016, 22:08)  Верьте - не верьте, но в IAR например даже галка такая специальная есть: "Запрет прерываний в пошаговом режиме" (как то так называется). Вероятно подобная галка может быть где-нить и в Keil. Галки такой в KEIL не наблюдал. По поводу "не верю". Из текста ТС было не ясно, что именно в ISR происходит. " Не верю" касалось варианта, что, якобы, код ISR вообще никак не отрабатывается.
|
|
|
|
Сообщений в этой теме
Arlleex Прерывания в пошаговом режиме Keil Oct 24 2016, 23:45 x893 Подтверждаю.
При шаговом не заходит, но если надо ... Oct 25 2016, 14:18 KnightIgor Цитата(x893 @ Oct 25 2016, 16:18) Подтвер... Oct 26 2016, 08:31  x893 Цитата(KnightIgor @ Oct 26 2016, 11:31) .... Oct 26 2016, 08:50 uriy Несколько проектов делал VisualDSP там есть галочк... Oct 26 2016, 10:56 редактор Цитата" Не верю" касалось варианта, что,... Oct 28 2016, 08:34 KnightIgor Цитата(редактор @ Oct 28 2016, 10:34) Мож... Oct 29 2016, 14:28  scifi Цитата(KnightIgor @ Oct 29 2016, 17:28) П... Oct 29 2016, 14:33  jcxz Цитата(KnightIgor @ Oct 29 2016, 17:28) Е... Oct 29 2016, 19:30   scifi Цитата(jcxz @ Oct 29 2016, 22:30) Думаю э... Oct 29 2016, 19:53    jcxz Цитата(scifi @ Oct 29 2016, 22:53) Выдумк... Oct 30 2016, 09:46   KnightIgor Цитата(jcxz @ Oct 29 2016, 21:30) Если со... Oct 29 2016, 22:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|