#arm #microcontroller #cortex-m #keil #bare-metal
#arm #микроконтроллер #cortex-m #keil #голый металл
Вопрос:
я использую STM32f0 и попадаю в Hardfault. Моя среда разработки — Keil MDK. Я пытался найти его корни, поэтому каждый подход, который я нахожу в Интернете (в основном для M3 / M4), говорит о необходимости разматывать стек. см., Например: arm.com
Для этого мне логически необходимо изменить базовую реализацию обработчика жесткого по умолчанию.
HardFault_Handler
PROC
MRS r7,MSP
EXPORT HardFault_Handler [WEAK]
B .
ENDP
после добавления строки MRS r7,MSP
обработчик жесткого по умолчанию больше не вызывается, и приложение продолжает работать.
То же самое происходит, когда я пытаюсь реализовать свой собственный HardFault_handler на c.
Я понятия не имею. Заранее спасибо!
приветствия
Комментарии:
1. Привет, это Cortex-M0. И я создаю для Cortex-M0. Приложение работало хорошо в течение нескольких месяцев до недавнего времени. Поэтому я предполагаю, что настройка правильная. Я получаю жесткий по умолчанию. я меняю только HardFault_Handler_Code . Я больше не получаю жесткого по умолчанию. Это то, что мне кажется подозрительным.
2. как выглядит ваша векторная таблица после компоновки? Как вы запускаете жесткий сбой?
3. Как я могу проверить, как выглядит векторная таблица после связывания (в Keil)?