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

[复制链接]
1964|35
fentianyou 发表于 2019-10-2 20:58 | 显示全部楼层
有的单片机即使没使用看门狗开机时也有可能意外自动开启了最小周期的看门狗,导致软件不断复位
xiaoyaodz 发表于 2019-10-2 20:58 | 显示全部楼层
对于容量小的单片机,尽量减少函数调用层级,减少局部变量  
febgxu 发表于 2019-10-2 20:58 | 显示全部楼层
把你的被调用少函数直接内置到调用的地方并且把占用RAM大的局部变量改成全局变量  
sdlls 发表于 2019-10-2 20:59 | 显示全部楼层
是否打开了某个中断   
pixhw 发表于 2019-10-2 20:59 | 显示全部楼层
可能PC指针指向一个不确定的或者根本就没有存放用户代码的程序存贮空间  
febgxu 发表于 2019-10-2 20:59 | 显示全部楼层
最常见的是堆栈溢出, 你用操作系统没?   
kkzz 发表于 2019-10-2 20:59 | 显示全部楼层
程序中打开了某个中断,但是却没有相应的中断服务程序,从而导致在中断发生后,找不到中断服务程序入口,从而导致程序跑飞
xiaoyaodz 发表于 2019-10-2 20:59 | 显示全部楼层
减少压栈的时候所需的空间。  
hudi008 发表于 2019-10-2 20:59 | 显示全部楼层
导致看门狗复位,使程序直接跳到复位位置。
fentianyou 发表于 2019-10-2 20:59 | 显示全部楼层
最好在程序复位后首先应该显式清除看门狗再关闭看门狗。
lzmm 发表于 2019-10-2 20:59 | 显示全部楼层
中断变量处理不妥。     
selongli 发表于 2019-10-2 20:59 | 显示全部楼层
无条件的死循环?      
minzisc 发表于 2019-10-2 20:59 | 显示全部楼层
数组下标使用循环函数中循环变量  
pixhw 发表于 2019-10-2 20:59 | 显示全部楼层
PC指针根本无法恢复到用户代码空间之内,程序跑飞  
sdlls 发表于 2019-10-2 20:59 | 显示全部楼层
不一定是 程序 跑飞,单片机运行程序 本身 会跳来跳去的  
coshi 发表于 2019-10-13 11:59 | 显示全部楼层
最大的原因就是代码问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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