应对STM32Cortex-MHardFault异常.docxVIP

  • 28
  • 0
  • 约1.1万字
  • 约 10页
  • 2019-04-18 发布于浙江
  • 举报
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 寄存器描述 首先查看硬故障寄存器,判别原因。 对于调试故障,有个调试故障寄存器,在0xE000ED30处,有详细介绍,不做探讨; 对于取中断发生的,有两类原因,一是在取向量过程中发生总线 fault,二是向量表偏移量设置有误。 本文重点介绍位30所示的,上访类错误。 这样Fault类异常有了三类,用

文档评论(0)

1亿VIP精品文档

相关文档