|
|
  |
STM32 independent watchdog и дебаг в IAR, Как дебаггер останавливает watchdog? |
|
|
|
Aug 30 2015, 09:35
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Подскажите пожалуйста с одним вопросом.
Как я понимаю independent watchdog, однажды заведенный, остановить невозможно. Но когда отлаживаю код в IAR, попадает на точку останова и там может находиться бесконечно долго, причем в это время даже таймеры стоят.
Оно то и правильно, но беспокоит один вопрос. А как же вочдог, каким образом он отключается во время дебага?
Подробности:
IAR 7.20, STM32F205, J-LINK (китайский)
В рабочем режиме (не в дебаге) вочдог работает, никаких проблем нет. Заводится вот так:
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); IWDG_SetPrescaler(IWDG_Prescaler_256); IWDG_SetReload(0xFFF); IWDG_Enable();
В задаче FreeRTOS периодически вызываю IWDG_ReloadCounter().
Сообщение отредактировал turnon - Aug 30 2015, 10:42
|
|
|
|
|
Aug 30 2015, 16:22
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(A. Fig Lee @ Aug 30 2015, 15:20)  DBGMCU Спасибо, прояснилось. А вот еще вопрос. Если в проекте есть брекпоинты, проект в IAR c factory settings: Debug и прошивка залита в МК, возможен ли останов на брекпоинтах (и в итоге зависание), если J-Link не подключен, или J-Link подключен но IAR закрыт?
|
|
|
|
|
Aug 30 2015, 18:08
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(jcxz @ Aug 30 2015, 20:46)  Если речь про программные бряки, то разве Вы не замечаете как IAR прошивает их во флешь после прошивки отлаживаемого образа, и удаляет при отключении отладки? Это трудно не заметить. Да, замечал. Это вы дали ответ на еще один вопрос. Подразумевал что это бряки прошиваются, но не был уверен. Цитата(jcxz @ Aug 30 2015, 20:46)  Если программный бряк по каким-то причинам остался во флешь, то будет вызываться соответствующее исключение (fault) при его достижении. Ну например, просто убили процесс IAR и в МК осталась прошивка с бряками. Будет вызван HardFault_Handler ?
|
|
|
|
|
Aug 30 2015, 19:31
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(jcxz @ Aug 30 2015, 13:46)  Если речь про программные бряки, то разве Вы не замечаете как IAR прошивает их во флешь после прошивки отлаживаемого образа, и удаляет при отключении отладки? Это трудно не заметить. Если программный бряк по каким-то причинам остался во флешь, то будет вызываться соответствующее исключение (fault) при его достижении. Брекпойнты бывают хардварные (небольшое количество, зависит от конкретного АРМа) и софтварные (скоко угодно, если софт позволяет). Харварные, АФАИК, не во флэше
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Aug 31 2015, 05:34
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 17-06-14
Пользователь №: 81 969

|
The BKPT instruction causes the processor to enter Debug state. Debug tools can use this to investigate system state when the instruction at a particular address is reached.
|
|
|
|
|
Sep 3 2015, 13:28
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(jcxz @ Aug 31 2015, 12:29)  Там есть спец. вектор для отладочного исключения. Откройте мануал - я точно не помню. Если оно запрещено, то очевидно будет эскалация до ХардФаулта. Проверил. Поставил брекпоинт с зарубил процесс IAR'а. После ресета доходит до точки останова и виснет мертво, вочдог не работает. Отсюда мораль - никогда не заливать релиз из среды разработки, или проверять что это не дебаг версия.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|