导致MCU出现功能严重异常的几个原因分析

2019-07-14 14:29发布

导致MCU出现功能严重异常的几个原因分析

我们在从事MCU应用开发过程中,难免会碰到MCU芯片异常的问题。比如异常复位,表现为复位脚有电平跳变或者干脆处于复位电平;在做代码调试跟踪时,发现代码往往进不到用户main()程序;或者时不时感觉芯片死掉了,功能完全不可控等。针对类似严重异常情况的原因我在这里大致总结下,与大家分享。1、时钟问题。一般表现在时钟配置异常,比方配置超出芯片主频工作范围。【对于STM32系列MCU,如果使用STM32CUBEMX图形化工具做配置,基本可以回避这个问题】2、电源问题。比方电源质量差,纹波过大,尤其开关电源供电时;或者供电芯片质量差,输出不稳定;或者系统供电能力不足而引起电源波动等。3、BOOT脚配置问题。对于ARM芯片往往都有些BOOT配置脚。经常遇到有人因为BOOT脚的焊接或接触不良导致各类奇怪问题。这种情况多表现在芯片功能时好时坏,或者部分芯片正常,部分芯片异常。4、启动文件问题。经常因为选错了启动文件,导致程序无**常运行,或者说调试时好好的,脱机运行就出鬼。这点在做不同系列芯片间移植时最容易碰到。5、中断请求位清除问题。由于中断请求位没有及时清除导致中断没完没了的重复进入,感觉系统死机一般。6、堆或栈的越界溢出。这个也会导致芯片无**常工作,调试时往往可能会有硬错提示。7、VCAP脚问题。有些MCU芯片有VCAP脚,该类脚往往需要接上适当的电容,如果无视了它的话,也可能导致整个芯片的功能异常。上面这几个原因比较容易导致MCU出现功能严重异常,也不太容易简单地通过查看MCU技术手册直接获得答案,分享出来算作一些提醒。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
selongli
1楼-- · 2019-07-15 15:01
堆或栈的越界溢出是什么造成的?
xiaoyaodz
2楼-- · 2019-07-15 18:04
主要是硬件能够满足要求。
febgxu
3楼-- · 2019-07-15 22:40
 精彩回答 2  元偷偷看……
sdlls
4楼-- · 2019-07-16 03:15
pixhw
5楼-- · 2019-07-16 03:57
代码往往进不到用户main()程序还真没有碰上。
updownq
6楼-- · 2019-07-16 08:47
能够讲解一下bootloader的分析就行了。

一周热门 更多>