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

Cortex M7 (STM32F74xx ) и HARD FAULT

Попало в руки устройство на доработку, проект выполнен в CUBEIDE. на првый взгляд всё работает, стартует, начинает бодро получать пакеты, выводит на экран всякое, потом без вской системы вылетает в HARD FAULT,  в регистре HFSR появляеться бит (FORСED). Начал изучать вопрос, здесь на форуме, потом обнаужил интересный документ от Keil , плюс книга от мистера Ю. 

Если кто-то сталкивался с подобным, может поскажете напрвление куда копать,потомку как сразу возникли вопросы, в проекте отсутствовала нормальная иинциалиация всех служебных прерываний а .h файле HARD FAULT как это было с F4. 

Поигрался с CUBE MX, да действительно при создниие проекта HARD FAULT функцияЫ stm32f746xx.h отсутствует, похожке , что то делаю не так.    

 

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


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

Forced - это "полный п-дец", образно выражаясь. Чаще всего - обращение в несуществующие физически или в запрещенные для записи адреса памяти. То есть, в коде - неконтролируемое по инкременту индекса или указателя обращение к массиву, обращение по неинициализованному указателю и тому подобное.

Все "служебные" прерывания инициализировать и не нужно. Нужно включать и реализовывать обработчики только тех прерываний, которые реально используются в проекте. 

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


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

У меня в отладочной версии висит вот такой обработчик HardFault:

void HardFault_Handler(void)
{
    volatile int i = 0;
    while(!i)
        ;
}

Попав в него я отладчиком изменяю значение i на ненулевое и по шагам в окне дизассемблера выхожу из этого обработчика - попадаю на следующую, за вызвавшей исключение. Смотрю содержимое задействованных в ней регистров и размышляю, как в них могли попасть значения, приводящие к исключению. Почти всегда этого хватает.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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