Перейти к содержанию
    

STM32L476 HardFaul при включении со шнуром USB

Поотключал всю активность CDC UART - не помогло. Вываливается в HardFault если подавать питание после подключения шнура USB к изделию.

 

К сожалению мало знаком с дебуггером - ловлю уже в HardFault. Хотел спросить - можно как - то отследить откуда он туда падает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поотключал всю активность CDC UART - не помогло. Вываливается в HardFault если подавать питание после подключения шнура USB к изделию.

 

К сожалению мало знаком с дебуггером - ловлю уже в HardFault. Хотел спросить - можно как - то отследить откуда он туда падает?

Самый простой вариант объявить HardFault обработчик вот так:

void HardFault(void)
{
  volatile int i=1;
  while(i);
}

Когда вывалитесь в hardfault установите i=0 и прошагайте до выхода из обработчика - с довольно большой вероятностью возврат произойдет в место возникновения проблемы (ну или около него). Посмотрите состояние регистров и дизассемблером, что там делалось. Если Вам не повезло и HF произошел где-то в другом месте, то смотрите состояние регистра BFSR, BFAR и т.д.

Изменено пользователем Шаманъ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самый простой вариант объявить HardFault обработчик вот так:

Он так и объявлен. Там мертвый цикл. Но от куда он туда попадает - не могу понять.

Изменено пользователем Димон Безпарольный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Он так и объявлен.

Это я случайно отправил недописанное сообщение :laughing: , прочитайте его еще раз, я отредактировал...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это я случайно отправил недописанное сообщение :laughing: , прочитайте его еще раз, я отредактировал...

Блин. Точно. Весьма простое решение. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавлю: шагать нужно по ассемблерным командам. Если шагать по исходному коду, то весьма вероятно что отладчик побежит дальше или сразу после выхода свалится в исключение снова.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...