社区
单片机/工控
帖子详情
程序为什么总跑飞?
wuchunling
2003-06-05 11:33:43
KEYUP1: LCALL DEL20ms
JB 02H,KEYOUT
LJMP INCSTEP
比如上面这段程序
每次执行到LCALL DEL20ms 时 ,程序就跑飞了,而有时就没问题,可正常执行,为什么?
还有,在子程序中要用到别的子程序,是不是不可用 LJMP 指令跳转,而应该用LCALL 指令调用?
请各位指教!!
...全文
373
11
打赏
收藏
程序为什么总跑飞?
KEYUP1: LCALL DEL20ms JB 02H,KEYOUT LJMP INCSTEP 比如上面这段程序 每次执行到LCALL DEL20ms 时 ,程序就跑飞了,而有时就没问题,可正常执行,为什么? 还有,在子程序中要用到别的子程序,是不是不可用 LJMP 指令跳转,而应该用LCALL 指令调用? 请各位指教!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
setcdq9801的专栏
2003-06-08
打赏
举报
回复
是不是你的 DEL20ms
根本就没有
pchia
2003-06-08
打赏
举报
回复
你的仿真器可以看到堆栈么??无论有没有,,在DEL20ms前后将堆栈读入一个区块RAM,用来作为调试用
pchia
2003-06-08
打赏
举报
回复
在DEL20ms程序里的RET前面加三个NOP,在中间哪个NOP设置中断,看看到底什么原因
wawa14
2003-06-06
打赏
举报
回复
堆栈出错了,我碰到过类似情况,一般来说,程序的第一句话就应该设置好堆栈的起点,调用子程序当然用lcall了!
abei11
2003-06-06
打赏
举报
回复
没见过,可能硬件和软件都可能有问题,一个一个排除!
jack2004
2003-06-06
打赏
举报
回复
看看你的仿真机与板的联接线吧,最大可能是联接线的总是了。
zys0001
2003-06-05
打赏
举报
回复
按我的猜测,可能是使用LJMP造成的,可试一将LJMP改成LCALL。原因是在调用子程序时有压栈,退出子程序时有退栈,而你在调用子程序时用LJMP,跳转指令不压栈。当你调用的字里行间程序退出时,就退掉了不该退的栈数据,从而引起程序的跳飞。程序跳飞一般的原因都是由于堆栈产生的,比如是压栈指针没设合理,也会出现同样的问题。
syl79
2003-06-05
打赏
举报
回复
可能是硬件问题。如果要调用子程序,则应该用acall或lcall指令。
CrazyGentleman
2003-06-05
打赏
举报
回复
不是程序问题
调试工具的问题,注意相关设置选项
pdy11
2003-06-05
打赏
举报
回复
我感觉也应该是仿真器的事 就是你的程序没有设置好
aww111
2003-06-05
打赏
举报
回复
我和zys0001想法一样。
为什么你的单片机
程序
会跑
飞
?! 三种跑
飞
现象分析
在编写单片机
程序
的时候,由于中断服务
程序
写的不好,导致单片机
程序
总是跑
飞
,最后费了好长时间,花了很大功夫才找到问题原因,由此总结了单片机
程序
跑
飞
的三种现象、原因及解决方法。1 数组越界/溢出 现象:单片机
程序
在函数中运行时,总是在运行到函数末尾,要跳出函数时,
程序
跑
飞
。原因:数组越界(数组溢出),函数中定义的数组元素的个数小于
程序
中实际使用的数组元素的个数,例如在函数中定义了一个数组ucDataBuff[10],这个数组只有10个元素,但是在函数中却有这样的语句ucDataBuff[10]=0x1a,这个语
裸奔
程序
为什么会跑
飞
?
经常在论坛里面,看到一些人说“
程序
跑
飞
了!”。以前我真不太理解这个词语,刚才看了个帖子,觉得有点收获,就写下来,造福you and me。 所谓“
程序
跑
飞
了”,就是
程序
找不到正确的地址去寻找应该执行的指令,这通常是在中断跳转,MMU设置相关。下面这个帖子就是这个原因。http://topic.csdn.net/u/20090517/14/4664821b-b0b5-4142-bbf7
单片机
程序
跑
飞
原因
参考:单片机
程序
又跑
飞
? 作者:嵌入式ARM 网址:https://mp.weixin.qq.com/s/a22zVdSfCqWjSmlBxK2R1Q 目录数组越界/溢出中断服务
程序
缺失看门狗复位 单片机中有看门狗,长时间不喂狗,
程序
就会复位。为什么长时间不喂狗呢?这是因为
程序
跑
飞
了,抛开外部因素不谈。今天就和大家分享一下,单片机
程序
跑
飞
的几个原因。 在编写单片机
程序
的时候,由于中断服务
程序
写的不好,导致单片机
程序
总是跑
飞
,最后费了好长时间,花了很大功夫才找到问题原因,由此总结了单片机
程序
跑
飞
的三种现象.
你的
程序
有跑
飞
了?(HardFaultException)
HardFaultException ,单片机死机,单片机
程序
跑
飞
嵌入式
程序
跑
飞
的几个原因
《《《《《正文》》》》》 作为嵌入式
程序
员,我想
程序
跑
飞
应该不陌生吧?!尤其在前期开发调试阶段,
程序
九重天都能
飞
!而且跑
飞
很难查找原因,基于
程序
跑
飞
的原因复杂且五花八门,我也只能分享几个自己常常遇到的跑
飞
的原因,也当提供排查跑
飞
的思路方向! 《看门狗时间太短》 有些底层IDE配置生成的的工程可能默认看门狗开启,且时间很短,往往满足不了我们初始化阶段的时间或者while死循环的最长周期,导致复位。 《带while的条件》 如果在
程序
中while某个条件,比如外部状态、或者变量,...
单片机/工控
27,382
社区成员
28,770
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章