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

[复制链接]
 楼主| Orchids 发表于 2017-12-22 16:21 | 显示全部楼层 |阅读模式
导致MCU出现功能严重异常的几个原因分析

我们在从事MCU应用开发过程中,难免会碰到MCU芯片异常的问题。比如异常复位,表现为复位脚有电平跳变或者干脆处于复位电平;在做代码调试跟踪时,发现代码往往进不到用户main()程序;或者时不时感觉芯片死掉了,功能完全不可控等。

针对类似严重异常情况的原因我在这里大致总结下,与大家分享。

1、时钟问题。一般表现在时钟配置异常,比方配置超出芯片主频工作范围。【对于STM32系列MCU,如果使用STM32CUBEMX图形化工具做配置,基本可以回避这个问题】

2、电源问题。比方电源质量差,纹波过大,尤其开关电源供电时;或者供电芯片质量差,输出不稳定;或者系统供电能力不足而引起电源波动等。

3、BOOT脚配置问题。对于ARM芯片往往都有些BOOT配置脚。经常遇到有人因为BOOT脚的焊接或接触不良导致各类奇怪问题。这种情况多表现在芯片功能时好时坏,或者部分芯片正常,部分芯片异常。

4、启动文件问题。经常因为选错了启动文件,导致程序无**常运行,或者说调试时好好的,脱机运行就出鬼。这点在做不同系列芯片间移植时最容易碰到。

5、中断请求位清除问题。由于中断请求位没有及时清除导致中断没完没了的重复进入,感觉系统死机一般。

6、堆或栈的越界溢出。这个也会导致芯片无**常工作,调试时往往可能会有硬错提示。

7、VCAP脚问题。有些MCU芯片有VCAP脚,该类脚往往需要接上适当的电容,如果无视了它的话,也可能导致整个芯片的功能异常。

上面这几个原因比较容易导致MCU出现功能严重异常,也不太容易简单地通过查看MCU技术手册直接获得答案,分享出来算作一些提醒。



baimiaocun2015 发表于 2017-12-23 12:00 | 显示全部楼层
这7个问题的可以说是非常常见的,,特别是那个堆栈越界的问题的要注意
zhangbo1985 发表于 2017-12-23 21:43 | 显示全部楼层
BOOT脚配置问题。对于ARM芯片往往都有些BOOT配置脚。经常遇到有人因为BOOT脚的焊接或接触不良导致各类奇怪问题。
这个纯粹会硬件上的问题的,要多注意的
zhangbo1985 发表于 2017-12-23 21:44 | 显示全部楼层
再个,软件上的问题的话,一般都会大面积的,很容易定位的
kkzz 发表于 2017-12-24 21:22 | 显示全部楼层
MCU主要的还是死机。
hudi008 发表于 2017-12-24 21:22 | 显示全部楼层
这个是STM32的分析。
lzmm 发表于 2017-12-24 21:23 | 显示全部楼层
启动文件在哪里配置的
minzisc 发表于 2017-12-24 21:24 | 显示全部楼层
异常复位是指的进入中断吗?
selongli 发表于 2017-12-24 21:24 | 显示全部楼层
堆或栈的越界溢出是什么造成的?
xiaoyaodz 发表于 2017-12-24 21:25 | 显示全部楼层
主要是硬件能够满足要求。
febgxu 发表于 2017-12-24 21:25 | 显示全部楼层
代码调试有问题
sdlls 发表于 2017-12-24 21:26 | 显示全部楼层
pixhw 发表于 2017-12-24 21:26 | 显示全部楼层
代码往往进不到用户main()程序还真没有碰上。
updownq 发表于 2017-12-24 21:28 | 显示全部楼层
能够讲解一下bootloader的分析就行了。
kkzz 发表于 2017-12-24 21:29 | 显示全部楼层
芯片死机除了电源还有什么功能。
hudi008 发表于 2017-12-24 21:29 | 显示全部楼层
有没有关于MSP430的。
lzmm 发表于 2017-12-24 21:29 | 显示全部楼层
正常不就是bootloader启动吗?
minzisc 发表于 2017-12-24 21:29 | 显示全部楼层
正常的问题就是死机的问题。
selongli 发表于 2017-12-24 21:29 | 显示全部楼层
因为编译器的不同吗?
xiaoyaodz 发表于 2017-12-24 21:30 | 显示全部楼层
很多时候都是硬件电路存在问题,导致系统故障。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

697

主题

993

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部

697

主题

993

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部