历史上的今天
返回首页

历史上的今天

今天是:2024年08月22日(星期四)

正在发生

2019年08月22日 | STM32死机 调试时进入HardFault_Handler定位错误的方法

2019-08-22 来源:eefocus

STM32在运行不正常的时候我们一般会进行调试看看问题出在了哪里。但是当STM32卡死后进行调试的时候会发现进入到了一个HardFault_Handler函数里,这是一个硬件错误处理函数。通过它和MDK配合可以定位程序最后卡死的原因。


STM32卡死的原因有以下几种:数组越界操作;内存溢出,访问越界;堆栈过小;中断处理错误;电压供电异常。


现在实验一个堆栈过小的错误,让MDK来检测这个问题然后定位错误。


这个程序基于UCOSII 系统 


#define TFTLCD_STK_PRIO  8 //任务的优先级

#define TFTLCD_STK_SIZE  2 //任务的堆栈大小

OS_STK TFTLCD_TASK_STK[TFTLCD_STK_SIZE];   //任务堆栈

void tftlcd_task(void *pdata);        //任务函数

上面建立了一个TFTLCD的任务,液晶屏任务在运行的时候要占用大量的内存资源,所以TFTLCD_STK_SIZE 定义成8字节(2*4)


是明显不够用的。这个就可以引发设备死机。


现在打开MDK进行调试。


首先在进入主函数后设置断点。点击全速运行后程序到断点处,再次点击全速运行程序,设备处于死机状态。

点停止按钮光标会自动定位到f10x_it.c下面的HardFault_Handler函数,同时在Call Stack+Locals 窗口下面出现了几个函数

在每个函数上面右键选择 show caller code显示具体代码所在,在第三个提示上光标定位到了液晶屏的任务建立上面。


这和一开始的液晶屏任务堆栈设置过小一致。但是如果不是一开始知道问题在哪,那问题还要根据指示出来的程序才能弄清。

推荐阅读

史海拾趣

晨晶电子(Chenjing Electronics)公司的发展小趣事

晨晶电子自成立以来,始终坚持以技术创新为核心竞争力。公司拥有一支高素质的研发团队,致力于石英晶体元器件的研发与生产。通过不断的技术创新和产品升级,晨晶电子在行业内逐渐树立了技术领先的地位。其产品广泛应用于通信、计算机、消费电子等领域,赢得了众多客户的信赖和好评。

DETCO公司的发展小趣事

为了进一步拓展全球市场,ElectronicsCorp制定了国际化战略。公司先后在北美、欧洲和南美等地设立了研发中心和生产基地。这些海外机构不仅为ElectronicsCorp提供了更广阔的市场空间,还使其能够更深入地了解不同地区的消费者需求和文化背景。通过本土化战略的实施,ElectronicsCorp逐渐在海外市场取得了成功。

Axon' Cable公司的发展小趣事

随着科技的不断进步,Axon' Cable公司逐渐将业务拓展至航空航天领域。公司研发出了一系列高性能、高可靠性的数据网络系统和连接器产品,成功应用于众多重要的航空航天项目中。这些产品的成功应用不仅提升了Axon' Cable在航空航天领域的知名度,也为公司带来了丰厚的利润和更广阔的发展空间。

Carlisle Interconnect Technologies公司的发展小趣事

随着电子行业的快速发展,Carlisle Interconnect Technologies不断进行技术升级和产品创新。公司不断引进先进的生产设备和技术,提升产品的质量和性能。同时,公司还积极拓展产品线,从最初的绝缘电线电缆扩展到连接器、传感器等多个领域。这种多样化的产品策略使得公司能够更好地满足客户的多样化需求,也在市场上取得了更大的成功。

光大芯业公司的发展小趣事

随着技术的不断进步,光大芯业的产品逐渐得到了市场的认可。公司的产品线涵盖了磁传感、DC/DC、AC/DC转换器、电机驱动等多个领域,广泛应用于消费电子、运动控制、电动工具、智能家居、汽车电子等多个行业。通过不断拓展市场,光大芯业的产品已经走进了千家万户,为人们的生活带来了便利和舒适。

Bedford Opto公司的发展小趣事

随着国内市场的饱和,Bedford Opto公司开始寻求国际化扩张的机会。通过与国外知名企业的合作,公司成功打入国际市场,并获得了更多的业务机会。同时,公司还积极参与国际技术交流与合作,不断提升自身的技术水平和创新能力。

问答坊 | AI 解惑

各种交换机的数据接口类型一览

作为局域网的主要连接设备,以太网交换机成为应用普及最快的网络设备之一,同时,也是随着这种快速的发展,交换机的功能不断增强,随之而来则是交换机端口的更新换代以及各种特殊设备连接端口不断的添加到交换机上,这也使得交换机的接口类型变得非 ...…

查看全部问答>

ARM AND 传感器

-----------学过单片机, 现在想搞ARM,可不知道怎么入手了,还有就是想看看ARM 的板子,价格少点的(我是学生,靠节约点才能买)  还请各位高手指点呀!在此先谢了。                 ...…

查看全部问答>

顶尖创意来自高度好奇心

客户包括微软、苹果及百事可乐等业界巨头的顶尖创意管理公司IDEO的执行长兼总裁布朗(Tim Brown)把问题看得比答案更重要。 他回忆自己的第一份专业设计工作是在英格兰北部的一家小公司,那是一家从工业大革命时期开始营运,生产木工机械的老公司 ...…

查看全部问答>

Microsoft编写优质无错C程序秘诀

Microsoft编写优质无错C程序秘诀,主要介绍微软编程习惯,非常不错的编程规范资料,…

查看全部问答>

Windows Mobile vs Windows CE

公司要做个项目,现在在确定平台,是使用windows mobile还是wince,主要是从研发周期和成本方面考虑,恳请大家给点建议。 目前只知道用mobile需要微软评估,另外开发工具费用、授权费用都很贵,但具体成本是多少没有概念;而用wince相对便宜些,网 ...…

查看全部问答>

咨询下版主:IAR仿真调试问题!

最近开始学习STM32,手头也有块板。 昨天晚上跑了下demo测试程序,用的是IAR4.42编译软件(第一次用IAR,不熟悉)。 现在问题是:跑原demo程序....debug....没问题; 但是在原demo上修改下程序后:rebuild all  没反应。 今天在 ...…

查看全部问答>

希望MSP430 SRAM更大些

希望MSP430 SRAM更大些   现在跑一般的程序没问题,带一些算法时,1K SRAM略小些!…

查看全部问答>

拆机!

昨天答应上拆机图的,现在把图片发上来。先申明,细心拆解,装回去后完好如初,正常使用哦!首先拆接收器:图片上有个433大家都看到了吧!难道是用的433MHz的无线通信?我没查证,随意猜的,请大家来指正。然后是鼠标:单面板PCB可能不能布通,还用 ...…

查看全部问答>

收到接进传感器套件了,怎么用呢?

相信很多人手里都拿到套件了,也许有的放旁边睡觉,有的急不可耐的上电测试了。大家是怎么用的呢?用在什么方面?简单测试后,和想象中有点差距。 [ 本帖最后由 yunbei 于 2012-4-1 18:20 编辑 ]…

查看全部问答>