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