请教,STM32的HardFault

2025-05-21 07:02:56
推荐回答(2个)
回答(1):

关注这个问题

回答(2):

hard fault 是Cortex内核的强制中断,优先级仅次于复位和NMI。
通常情况下,只有当bus fault、mem fault等中断发生后,且执行这些中断时又发生了异常才会进入hard fault。如果没有开启这些fault则会直接进入hard fault。
由于通常程序员都不会去开bus fault之类的异常。这就使得引起hard fault的原因很多,比如程序跑飞、指针未初始化和野指针、寄存器操作不当、出入栈异常都有可能导致hard fault。