关于KEIL 下的 ST的HardFault

今天闲来无事,想起之前关于HardFault的定位,一直没时间摸明白,所以今天趁有兴趣,搞了一下,结合ST官方的HardFault的诊断.pdf 发现里面的说明
还是有点不清楚,一般情况下,都是缓冲溢出问题,现记如下
 
1.设置断点如下

2.运行程序,当进入断点后,点开寄存器表

根据说明

按寄存器表单,应该是 = 0 ,SP = 0X2000240C(PSP)  

LR = 0x8048f55-4 = 0x8048f51
在asm中,输入如下

按 go to

如下

三角的位置,就是出问题的函数,

测试代码如下

void App_ReadMeterProcessControl_Internal(void)
{
    INT8U addPointNumber = 0 ;
    INT8U *pData ;
    *pData = 0x68 ;
    if(*pData)
    {
        pData++ ;
    }

}

跟预期的一样,这样就可以简单定位的出问题的地方.

永不止步步 发表于02-14 11:31 浏览65221次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:302267个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号