Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 independent watchdog и дебаг в IAR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
turnon
Подскажите пожалуйста с одним вопросом.

Как я понимаю 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().
A. Fig Lee
Для STM32F10X reference manual,
глава 31 (31.16.2)

DBGMCU
turnon
Цитата(A. Fig Lee @ Aug 30 2015, 15:20) *
DBGMCU

Спасибо, прояснилось. А вот еще вопрос. Если в проекте есть брекпоинты, проект в IAR c factory settings: Debug и прошивка залита в МК, возможен ли останов на брекпоинтах (и в итоге зависание), если J-Link не подключен, или J-Link подключен но IAR закрыт?

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

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

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

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

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


Брекпойнты бывают хардварные (небольшое количество, зависит от конкретного АРМа) и софтварные (скоко угодно, если софт позволяет).
Харварные, АФАИК, не во флэше
Immortal_Buka
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.
jcxz
Цитата(turnon @ Aug 31 2015, 00:08) *
Ну например, просто убили процесс IAR и в МК осталась прошивка с бряками. Будет вызван HardFault_Handler ?

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

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

Не преувеличивайте. Достаточно корректно отключить отладчик, а не выдёргивать кабель JTAG на ходу.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.