一般是什么原因造成程序跑飞

[复制链接]
2408|66
ousj 发表于 2022-3-6 22:06 | 显示全部楼层
有的单片机即使没使用看门狗开机时也有可能意外自动开启了最小周期的看门狗,导致软件不断复位
huanghuac 发表于 2022-3-6 22:08 | 显示全部楼层
对于容量小的单片机,尽量减少函数调用层级,减少局部变量  
lizye 发表于 2022-3-6 22:10 | 显示全部楼层
把你的被调用少函数直接内置到调用的地方并且把占用RAM大的局部变量改成全局变量  
xxrs 发表于 2022-3-6 22:13 | 显示全部楼层
是否打开了某个中断   
dengdc 发表于 2022-3-6 22:16 | 显示全部楼层
可能PC指针指向一个不确定的或者根本就没有存放用户代码的程序存贮空间  
jiajs 发表于 2022-3-6 22:18 | 显示全部楼层
最常见的是堆栈溢出, 你用操作系统没?   
chuxh 发表于 2022-3-6 22:20 | 显示全部楼层
程序中打开了某个中断,但是却没有相应的中断服务程序,从而导致在中断发生后,找不到中断服务程序入口,从而导致程序跑飞
renyaq 发表于 2022-3-6 22:22 | 显示全部楼层
减少压栈的时候所需的空间。  
heweibig 发表于 2022-3-6 22:24 | 显示全部楼层
导致看门狗复位,使程序直接跳到复位位置。
tian111 发表于 2022-3-6 22:29 | 显示全部楼层
最好在程序复位后首先应该显式清除看门狗再关闭看门狗。
xxrs 发表于 2022-3-6 22:31 | 显示全部楼层
中断变量处理不妥。     
juventus9554 发表于 2022-3-6 22:33 | 显示全部楼层
无条件的死循环?      
chuxh 发表于 2022-3-6 22:35 | 显示全部楼层
数组下标使用循环函数中循环变量  
wyjie 发表于 2022-3-6 22:37 | 显示全部楼层
PC指针根本无法恢复到用户代码空间之内,程序跑飞  
yinxiangh 发表于 2022-3-6 22:41 | 显示全部楼层
不一定是 程序 跑飞,单片机运行程序 本身 会跳来跳去的  
xxmmi 发表于 2022-3-6 22:43 | 显示全部楼层
最大的原因就是代码问题
chuxh 发表于 2022-3-6 22:45 | 显示全部楼层
中断异常,硬件错误。
llljh 发表于 2022-3-6 22:48 | 显示全部楼层
硬件、电路、指针,造成跑飞的原因确实是多种多样的。
huangchui 发表于 2022-3-6 22:50 | 显示全部楼层
各种原因都有
jlyuan 发表于 2022-3-6 22:53 | 显示全部楼层
程序没有结尾或不是循环的程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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