打印

pic堆栈溢出引起的复位

[复制链接]
1932|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
colorful88|  楼主 | 2014-11-25 16:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
做项目时,pic经常会复位,在经常复位的地方打了断点,发现STKPTR为0x1F,之后会复位。
有什么方法可以修复这个bug,谢谢各位
沙发
yklstudent| | 2014-11-25 21:18 | 只看该作者
优化程序

使用特权

评论回复
板凳
colorful88|  楼主 | 2014-11-25 23:41 | 只看该作者
yklstudent 发表于 2014-11-25 21:18
优化程序

程序里有个while的循环,循环里最后是sleep,运行第一遍没有问题,唤醒后返回while的开头再次运行会复位。
之前没加入看门狗程序是正常运行,让我很奇怪。我试着优化程序看看效果。

使用特权

评论回复
地板
yewuyi| | 2014-11-26 11:39 | 只看该作者
sleep之后,看门狗定时器并不会停止计数,当sleep时,看门狗计数器溢出则会发生看门狗溢出唤醒芯片,但在这个过程中一定要注意不能出现入堆栈后未退出的状态,否则运行几次后堆栈就会溢出并导致芯片执行混乱。

使用特权

评论回复
5
colorful88|  楼主 | 2014-11-27 09:16 | 只看该作者
yewuyi 发表于 2014-11-26 11:39
sleep之后,看门狗定时器并不会停止计数,当sleep时,看门狗计数器溢出则会发生看门狗溢出唤醒芯片,但在这 ...

芯片config1里设置的看门狗的swtden,睡眠前关闭,唤醒是外部器件给的低电平,唤醒后打开。
我打算从临时数组变量和子函数嵌套上找找问题,优化下代码

使用特权

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

本版积分规则

18

主题

56

帖子

0

粉丝