发新帖我要提问
12
返回列表
打印

单片机异常复位

[复制链接]
楼主: youimiss
手机看帖
扫描二维码
随时随地手机跟帖
21
youimiss|  楼主 | 2013-12-23 16:48 | 只看该作者 回帖奖励 |倒序浏览
cjseng 发表于 2013-12-23 16:45
直接用keil仿真运行,看看Sp_max为多少?如果接近0xff
,那就危险了。

堆栈可以在52的高128字节吗?可以在外部RAM中吗?

使用特权

评论回复
22
cjseng| | 2013-12-23 16:51 | 只看该作者
youimiss 发表于 2013-12-23 16:48
堆栈可以在52的高128字节吗?可以在外部RAM中吗?

可以在高128字节,但不能在外部RAM.

使用特权

评论回复
23
w522930954| | 2013-12-23 17:40 | 只看该作者
楼主不是不能仿真吗?

使用特权

评论回复
24
puppet21| | 2013-12-24 09:10 | 只看该作者
我见过的复位现象是因为供电不足的

你的单片机如果直接用USB供电的话,外围又挂了很多设备,就很容易引起供电不足的情况。

如果是我说的这种情况,建议用DC5V 的电源测试一下有没有问题。

使用特权

评论回复
25
m564522634| | 2013-12-24 09:42 | 只看该作者
这个你看下反汇编吧,不过应该是数组下标越界了,或者是你函数调用太多的嵌套了,用的堆栈太多了。还有你确定硬件没什么问题吗,硬件看下电源稳不稳,在运行的时候电源有没有异常的波动了,这看要拿示波器看的。软件的话要判断有点难了,因为这是不断运行出现的结果了。重点看下数组下标,和你的函数里有没有定义比较大的局部变量,函数嵌套是不是太多了,

使用特权

评论回复
26
youimiss|  楼主 | 2013-12-24 10:34 | 只看该作者
puppet21 发表于 2013-12-24 09:10
我见过的复位现象是因为供电不足的

你的单片机如果直接用USB供电的话,外围又挂了很多设备,就很容易引起 ...

电源没问题

使用特权

评论回复
27
youimiss|  楼主 | 2013-12-25 08:47 | 只看该作者
w522930954 发表于 2013-12-23 17:40
楼主不是不能仿真吗?

不能仿真

使用特权

评论回复
28
youimiss|  楼主 | 2013-12-25 08:49 | 只看该作者
cjseng 发表于 2013-12-23 16:43
直接用keil仿真运行看看,SP_max为多少?如果接近0XFF,那就危险了。

堆栈好像没溢出。。。

使用特权

评论回复
29
ningling_21| | 2013-12-25 10:59 | 只看该作者
youimiss 发表于 2013-12-25 08:49
堆栈好像没溢出。。。

不能好像,你必须确切的知道是不是没有溢出...
另,你可以把程序逐模块删减,看看是不是某个模块引起的...

使用特权

评论回复
30
youimiss|  楼主 | 2013-12-25 12:11 | 只看该作者
ningling_21 发表于 2013-12-25 10:59
不能好像,你必须确切的知道是不是没有溢出...
另,你可以把程序逐模块删减,看看是不是某个模块引起的.. ...

我好像的意思是说,我现在只能用keil自带的仿真器跑一下,SP_max最大时候为0x7e,现在在屏蔽程序调试,由于出现的概率太小,测试以100次为基准,有时候都会引起误判:L

使用特权

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

本版积分规则