您的位置 首页 设计

stm32中呈现的hard_fault问题 怎么处理

最近移植别人的一个lora程序,公司前任同事已经搞定的程序,从IAR平台移植到KEIL中,移植后,居然出现了hardfault问题。一直以来,我很少遇…

最近移植他人的一个lora程序,公司上一任搭档现已搞定的程序,从IAR渠道移植到KEIL中,移植后,竟然呈现了hardfault问题。一直以来,我很少遇到这个问题,遇到了,也算是功德。

然后看看怎么处理的吧。

1、单步履行,发现程序运转到哪的时分呈现了hardfault问题。发现是初始化的时分。应该是结构体指针的初始化问题。

2、其实也从晚上找了一些怎么定位hardfault的问题点的办法。充分使用call stack以及但不调试的东西。

3、问题点一般产生在数据越界,指针未初始化,仓库溢出的这些状况。

method-1 试过它的办法,检查寄存器,使用反汇编,定位出问题点。http://bbs.ednchina.com/BLOG_ARTICLE_3024685.HTM

method-2 也试过这个办法,使用fault reports,以及call stack+local窗口,定位问题点。http://blog.csdn.net/xiahouzuoxin/article/details/10068455

在这里,我引荐method-2。

static void __lora_init(void)
{
lora_port_init(); —-GPIO的初始化
register_rf_func(&ctrlTypefunc); —结构体,成员是指针
····
}
更改为
static void __lora_init(void)
{
register_rf_func(&ctrlTypefunc); —结构体,成员是指针
lora_port_init(); —-GPIO的初始化
····
}
因为结构体在lora_port_init();中使用到结构体ctrlTypefunc,可是未初始化,所以呈现这个问题。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/326016.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部