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

 
 
 
Reply to this topicStart new topic
> STM32 independent watchdog и дебаг в IAR, Как дебаггер останавливает watchdog?
turnon
сообщение Aug 30 2015, 09:35
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Aug 30 2015, 12:20
Сообщение #2


Знающий
****

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



Для STM32F10X reference manual,
глава 31 (31.16.2)

DBGMCU


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
turnon
сообщение Aug 30 2015, 16:22
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 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 закрыт?

Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 30 2015, 17:46
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(turnon @ Aug 30 2015, 22:22) *
Если в проекте есть брекпоинты, проект в IAR c factory settings: Debug и прошивка залита в МК, возможен ли останов на брекпоинтах (и в итоге зависание), если J-Link не подключен, или J-Link подключен но IAR закрыт?

Если речь про программные бряки, то разве Вы не замечаете как IAR прошивает их во флешь после прошивки отлаживаемого образа, и удаляет при отключении отладки? Это трудно не заметить.
Если программный бряк по каким-то причинам остался во флешь, то будет вызываться соответствующее исключение (fault) при его достижении.
Go to the top of the page
 
+Quote Post
turnon
сообщение Aug 30 2015, 18:08
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Цитата(jcxz @ Aug 30 2015, 20:46) *
Если речь про программные бряки, то разве Вы не замечаете как IAR прошивает их во флешь после прошивки отлаживаемого образа, и удаляет при отключении отладки? Это трудно не заметить.

Да, замечал. Это вы дали ответ на еще один вопрос. Подразумевал что это бряки прошиваются, но не был уверен.

Цитата(jcxz @ Aug 30 2015, 20:46) *
Если программный бряк по каким-то причинам остался во флешь, то будет вызываться соответствующее исключение (fault) при его достижении.

Ну например, просто убили процесс IAR и в МК осталась прошивка с бряками. Будет вызван HardFault_Handler ?
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Aug 30 2015, 19:31
Сообщение #6


Знающий
****

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



Цитата(jcxz @ Aug 30 2015, 13:46) *
Если речь про программные бряки, то разве Вы не замечаете как IAR прошивает их во флешь после прошивки отлаживаемого образа, и удаляет при отключении отладки? Это трудно не заметить.
Если программный бряк по каким-то причинам остался во флешь, то будет вызываться соответствующее исключение (fault) при его достижении.


Брекпойнты бывают хардварные (небольшое количество, зависит от конкретного АРМа) и софтварные (скоко угодно, если софт позволяет).
Харварные, АФАИК, не во флэше


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Immortal_Buka
сообщение Aug 31 2015, 05:34
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 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.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 31 2015, 09:29
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(turnon @ Aug 31 2015, 00:08) *
Ну например, просто убили процесс IAR и в МК осталась прошивка с бряками. Будет вызван HardFault_Handler ?

Там есть спец. вектор для отладочного исключения. Откройте мануал - я точно не помню. Если оно запрещено, то очевидно будет эскалация до ХардФаулта.
Go to the top of the page
 
+Quote Post
turnon
сообщение Sep 3 2015, 13:28
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



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

Проверил. Поставил брекпоинт с зарубил процесс IAR'а. После ресета доходит до точки останова и виснет мертво, вочдог не работает. Отсюда мораль - никогда не заливать релиз из среды разработки, или проверять что это не дебаг версия.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 5 2015, 13:40
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(turnon @ Sep 3 2015, 19:28) *
Проверил. Поставил брекпоинт с зарубил процесс IAR'а. После ресета доходит до точки останова и виснет мертво, вочдог не работает. Отсюда мораль - никогда не заливать релиз из среды разработки, или проверять что это не дебаг версия.

Не преувеличивайте. Достаточно корректно отключить отладчик, а не выдёргивать кабель JTAG на ходу.
Go to the top of the page
 
+Quote Post

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

 


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


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