STM32 Cortex-M3 Hard Fault
Hard fault (硬错误,也有译为硬件错误的)是在 STM32(如无特别说明,这里的 STM32
指的是 Cortex-M3 的核)上编写程序中所产生的错误,造成 Hard Fault 错误的原因也是最为
纷繁复杂的。由于能导致该错误的原因很多,所以一但出现,比较难找到其原因。网上有
很多类似的这种方法,现在我将其稍加整理,并结合我曾经遇到过的问题,详细说明。
硬 fault 是总线 fault、存储器管理 fault 以及用法 fault 上访的结果。如果这些 fault 的服
务例程无法执行,它们就会成为“硬伤”——上访(escalation)成硬 fault。另外,在取向量
(异常处理是对异常向量表的读取)时产生的总线 fault,也按硬 fault 处理。在 NVIC 中有
一个硬 fault 状态寄存器(HFSR),它指出产生硬 fault 的原因。如果不是由于取向量造成
的,则硬 fault 服务例程必须检查其它的 fault 状态寄存器,以最终决定是谁造成的。
1 寄存器描述
首先查看硬故障寄存器,判别原因。
评论10
最新资源