历史上的今天
返回首页

历史上的今天

今天是:2025年03月24日(星期一)

正在发生

2019年03月24日 | 解决STM32 HardFault_Handler错误记录

2019-03-24 来源:eefocus

HardFault_Handler错误的原因最最多的原因是数组越界以及指针指飞,其实这两个是差不多的,都是访问了不该访问的地方导致了错误,就像一个路痴,漫无目的的走到了一个陌生的地方……然后就迷路了……然后就木有然后了……(貌似是第一次写原创,我该如何装成经常写的样子……)


以前查找这种错误时比较盲目,就是在程序中缕着流程一步步的查找,逐个屏蔽进行排除,在程序隔一段加个while(1),以及通过串口发出错误状态日志等……这些方法都效率低下,不易查找。相比之下,查看堆栈的方法更加实用,效率也高。


在HardFault_Handler中的while(1)设置断点,然后运行,给它触发HardFault_Handler的条件,然后到断点处之后,查看View->Call Stack+Local,也就是堆栈以及局部变量,程序执行到哪一句发生的错误,以及当时各个压栈的函数的各个局部变量的值一目了然,这里记录了死者临死前的底对自己做了什么傻事。


下面是刚成功解决死机问题的过程:


Call Stack+Local窗口内显示了发生错误之前的程序状态。


开始运行结果:



先定位到时USART3_IRQHandler函数data问题,然后发现里面是指针,不好定位,于是把指针赋值换成数组,原因立刻浮现了。



然后串口DEBUG结果:



找到原因了,数组访问越界

推荐阅读

史海拾趣

Carlisle Interconnect Components公司的发展小趣事

在电子行业快速发展的背景下,Carlisle Interconnect Components公司始终将技术研发和持续创新作为公司发展的核心动力。公司投入大量资源用于研发新型连接器技术,不断推出具有更高性能、更小型化、更智能化的产品。这些创新产品的问世,不仅为公司带来了更多的市场机遇,更推动了整个电子连接器行业的进步。

爱普特半导体(APTSEMI)公司的发展小趣事

随着国产芯片产业的快速发展,人才短缺问题日益凸显。爱普特半导体深知人才是企业发展的核心资源,因此,公司积极构建高端半导体人才队伍。通过引进国内外优秀人才、加强内部培训、建立激励机制等多种措施,爱普特成功打造了一支技术过硬、经验丰富的研发团队。这支团队为公司的技术创新和产品研发提供了有力保障,推动了公司的快速发展。

Crouzet公司的发展小趣事

随着业务的不断发展,Crouzet公司于1989年和1992年分别成功兼并了法国Syreles公司及墨西哥Gordos公司。这一系列的兼并活动不仅增强了公司的实力,还进一步扩大了公司的业务范围。此后,Crouzet开始在全球范围内布局,陆续在美国、德国、英国、荷兰、比利时、瑞士、瑞典等国设立分公司,形成了一个覆盖全球的销售网络。

驰兴电感(Coilank)公司的发展小趣事

随着电子行业的快速发展,驰兴电感紧跟市场趋势,不断拓展产品应用领域。除了传统的消费电子和通讯领域外,驰兴电感还成功将产品应用于汽车电子、网络通讯、智能家居等新兴领域。这些领域的拓展不仅为公司带来了更广阔的市场空间,也进一步提升了驰兴电感在电子行业中的地位。

Eurotech公司的发展小趣事

随着技术的不断成熟,Eurofarad公司开始积极拓展市场。公司不仅在欧洲市场取得了良好的销售业绩,还通过与国际知名电子制造商建立战略合作关系,成功打入亚洲和北美市场。这些合作不仅让Eurofarad公司的电容器产品得到了更广泛的应用,还为公司带来了宝贵的市场经验和技术支持。

Fujisoku Corporation公司的发展小趣事

随着全球化进程的加速,“未来电子”意识到单一市场已无法满足公司的长远发展需求。于是,公司制定了全球化战略,通过设立海外研发中心、生产基地和销售网络,积极拓展国际市场。在欧洲、北美和亚洲等地,“未来电子”的产品和服务得到了广泛认可,市场份额逐年攀升。这一战略不仅提升了公司的国际影响力,还为公司的持续增长提供了强劲动力。

问答坊 | AI 解惑

基于WINDOWS CE的开放式数控系统设备驱动程序开发.pdf

基于WINDOWS CE的开放式数控系统设备驱动程序开发.pdf…

查看全部问答>

5000分求Pocket PC的远程桌面连接软件(最新版)

我有一PDA,Symbol PPT 8846 (8800系列的) Windows CE 4.2 (经网友纠正应为Pocket PC 2003,后来才看到机器面板有Pocket PC字样) 目前自带的Remote Servers Client 不能全屏,也不能将声音带到PDA上面来 我有尝试安装一些版本的RemoteDeskt ...…

查看全部问答>

有没有这样的芯片呢?

d:\\question.jpg 以上是一个发射地址码和数据码的电路。在数据码编辑的时,原先的电路是使用开关控制数据位D0-D3的高低电平,进而对数据位D0-D3进行编辑。 我的问题是,这部分开关控制的电路(图上红色长方形框所示),是否能通过一块芯片控制 ...…

查看全部问答>

关于evc使用方面的

想编一个PDA上的军旗游戏,但没什么思路,各位大虾 给点思路阿…

查看全部问答>

STCortex-M3ARM贵不贵?

                                  ST Cortex-M3 ARM贵不贵? …

查看全部问答>

CortexM0_PMU示例代码程序下载

CortexM0_PMU示例代码程序下载  …

查看全部问答>

吉时利一直在致力于推进SMU技术

吉时利一直在致力于推进SMU技术   *了解吉时利或测试测量应用方案更多信息,可登录 吉时利中国网站http://www.keithley.com.cn/ 吉时利微博 http://weibo.com/keithley  …

查看全部问答>

LED应用 - 并行 LED 的电流匹配 & 新电流模式 PWM 控制器

本帖最后由 dontium 于 2015-1-23 13:08 编辑 LED应用——   新电流模式 PWM 控制器支持升压、反向、SEPIC 和 LED 驱动器应用     镇流器电阻计算 – 并行 LED 的电流匹配     更多实用TI资料,周周更新,欢 ...…

查看全部问答>

在DS1302上遇到点麻烦,求各位大虾看看程序

这个是我的DS1302 谁帮我试下,SCLK=P1^0,IO=P1^1,REST=P2^4;数码管段是P3口,位是P2^0-P2^3,可是我显示出来的是1100,不知道怎么回事,帮我改下 谢谢  #include<reg51.h>#include <intrins.h>#define uchar unsigned char #def ...…

查看全部问答>