打印
[开发资料]

单片机程序跑飞死机的几种原因

[复制链接]
742|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
51xlf|  楼主 | 2022-11-17 20:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用单片机过程中,经常会出现程序运行一段时间后,不能够正常相应的情况。一般分为软件原因和硬件原因,其中硬件原因比较容易查,软件原因就较为复杂。

软件导致单片机死机的原因
1、指针异常

指针未初始化或者野指针导致正常数据被篡改。如果程序区被修改,会导致程序直接跑飞;如果数据区被修改,会导致数据异常引起程序运行错误。

2、缓冲区溢出

实际接受的数据超过了缓冲区长度,导致后续正常数据被篡改。

或者操作数组的时候下标溢出

3、等待标志位

没有增加超时判断,正常情况下很快就能出来,但实际运行时标志位一直满足while条件,导致程序一直死循环等待标志位。处理方法是增加超时判断,超过一定时间主动报错退出。

4、堆栈溢出

常见于容量小的单片机,重复中断、函数调用导致超出堆栈空间,正常数据被改写。该问题最难查,有一定特殊性,很难稳定复现

5、中断异常

打开了某个中断但是没有编写中断响应函数导致进入fault,或者没有清除中断标志导致重复进入中断。

硬件导致单片机死机的原因
1、电源不稳定
主要表现为纹波过大、电压过高、过低
2、晶振失振
晶振电路设计有问题,导致温度变化后,晶振失振
3、外部干扰
外部干扰导致导线上电平变化,或者直接导致单片机内部模块运行异常。常见于一些干扰较为严重的场合,可通过电磁干扰性的实验复现。现象是在特定环境下容易出现,实验室条件下很难复现。


使用特权

评论回复
沙发
wilhelmina2| | 2022-12-1 19:36 | 只看该作者
常用防死机的方法是使用看门狗,好多单片机都内置了看门狗

使用特权

评论回复
板凳
caigang13| | 2022-12-1 19:43 | 只看该作者
晶振出错,程序不叫跑飞了,是硬件宕机了。

使用特权

评论回复
地板
uptown| | 2022-12-1 19:45 | 只看该作者
查看是否有干扰,电压是否稳定,晶振周围是否有干扰

使用特权

评论回复
5
dspmana| | 2022-12-1 21:06 | 只看该作者
很强的干扰脉冲,加上单片机的防干扰措施不到位,就是会被干扰破坏了正常的动行

使用特权

评论回复
6
sanfuzi| | 2022-12-1 21:59 | 只看该作者
死机通常是受干扰程序跑飞了。   

使用特权

评论回复
7
wangjiahao88| | 2022-12-2 09:56 | 只看该作者
单片机程序跑飞死机的几种原因

MARK!

使用特权

评论回复
8
iyoum| | 2022-12-6 14:50 | 只看该作者
可能是软件处理有问题               

使用特权

评论回复
9
Undshing| | 2022-12-26 12:20 | 只看该作者
程序受到干扰了吧

使用特权

评论回复
10
软核硬核| | 2022-12-27 09:45 | 只看该作者
那种一开始就运行不了的,跑飞原因不止以上几种。

使用特权

评论回复
11
Pretext| | 2022-12-27 09:46 | 只看该作者
有些用AC6编译的,程序也会跑飞。

使用特权

评论回复
12
天天向善| | 2022-12-27 09:47 | 只看该作者
能调试跑飞问题都好解决,电磁干扰跑飞问题,最难找了。

使用特权

评论回复
13
y1n9an| | 2022-12-28 14:20 | 只看该作者
程序跑飞的原因太多了,软硬件都有可能出问题的

使用特权

评论回复
14
suw12q| | 2022-12-28 15:26 | 只看该作者
一般情况都是受到外部干扰了,才会这样吧

使用特权

评论回复
15
su1yirg| | 2022-12-28 16:36 | 只看该作者
指针异常倒是也有可能会出现跑飞情况

使用特权

评论回复
16
tax2r6c| | 2022-12-28 17:34 | 只看该作者
其实看门狗没用好也会出现跑飞的

使用特权

评论回复
17
b5z1giu| | 2022-12-28 19:17 | 只看该作者
硬件不是很好查吧,受到干扰这种不好查的

使用特权

评论回复
18
ex7s4| | 2022-12-29 07:05 | 只看该作者
对,电源供应不稳的话,死机是常事儿,也还比较有规律的

使用特权

评论回复
19
g0d5xs| | 2022-12-29 08:11 | 只看该作者
其实主要分析一下程序死机是否是规律的,要是规律大概是软件的问题

使用特权

评论回复
20
lamanius| | 2022-12-29 10:21 | 只看该作者
等待标志位的话,这倒是逻辑上的事儿,逻辑没处理好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

534

主题

9586

帖子

23

粉丝