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

[复制链接]
2756|64
zhuww 发表于 2021-1-7 20:46 | 显示全部楼层
有的单片机即使没使用看门狗开机时也有可能意外自动开启了最小周期的看门狗,导致软件不断复位
huanghuac 发表于 2021-1-7 20:51 | 显示全部楼层
对于容量小的单片机,尽量减少函数调用层级,减少局部变量  
bqyj 发表于 2021-1-7 20:56 | 显示全部楼层
把你的被调用少函数直接内置到调用的地方并且把占用RAM大的局部变量改成全局变量  
songqian17 发表于 2021-1-7 21:03 | 显示全部楼层
是否打开了某个中断   
juventus9554 发表于 2021-1-7 21:07 | 显示全部楼层
可能PC指针指向一个不确定的或者根本就没有存放用户代码的程序存贮空间  
xxmmi 发表于 2021-1-7 21:11 | 显示全部楼层
最常见的是堆栈溢出, 你用操作系统没?   
xxrs 发表于 2021-1-7 21:18 | 显示全部楼层
程序中打开了某个中断,但是却没有相应的中断服务程序,从而导致在中断发生后,找不到中断服务程序入口,从而导致程序跑飞
yufe 发表于 2021-1-7 21:21 | 显示全部楼层
减少压栈的时候所需的空间。  
hanwe 发表于 2021-1-7 21:27 | 显示全部楼层
导致看门狗复位,使程序直接跳到复位位置。
hanwe 发表于 2021-1-7 21:31 | 显示全部楼层
最好在程序复位后首先应该显式清除看门狗再关闭看门狗。
langgq 发表于 2021-1-7 21:34 | 显示全部楼层
中断变量处理不妥。     
wangzsa 发表于 2021-1-7 21:37 | 显示全部楼层
无条件的死循环?      
chuxh 发表于 2021-1-7 21:44 | 显示全部楼层
数组下标使用循环函数中循环变量  
pengf 发表于 2021-1-7 21:48 | 显示全部楼层
PC指针根本无法恢复到用户代码空间之内,程序跑飞  
yinxiangh 发表于 2021-1-7 21:51 | 显示全部楼层
不一定是 程序 跑飞,单片机运行程序 本身 会跳来跳去的  
xxmmi 发表于 2021-1-7 21:54 | 显示全部楼层
最大的原因就是代码问题
 楼主| guoyt 发表于 2021-1-7 21:58 | 显示全部楼层

好的,我明天去单位试一下,多谢各位大侠了哈        
lidi911 发表于 2021-1-16 14:14 来自手机 | 显示全部楼层
中断异常,硬件错误。
名字是啥样 发表于 2021-1-16 16:04 | 显示全部楼层
硬件、电路、指针,造成跑飞的原因确实是多种多样的。
guijial511 发表于 2021-1-18 07:48 来自手机 | 显示全部楼层
各种原因都有
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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