加载中…
  
博文
标签:

arm

debug

调试

hardfault

杂谈

分类: ARM调试技术

当前在我司代码中关于各种硬件异常的处理基本上是在屏幕上打印错误类型,并没有进一步的处理。本文讨论了一些针对Cortext-M3/M4处理器的方法,通过对寄存器数据的解读,在大多数情况下能够定位产生HardFault的位置和原因,方便在不能使用仿真器的时候或错误难以复现的情况下用来定位问题。最后用一个实例,描述了通过本文所述方法打印错误信息,并定位错误位置和原因的过程。

  1. 背景知识简介

  1. 发生中断时处理器的行为

不考虑其他细节,M3内核在发生中断时首先自动将如下8个寄存器压栈。因此在中断处理函数中,发生中断时正常执行时的寄存器数值已经被压入了堆栈中。在中断处理函数开始执行时,除了PC

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有