pic堆栈溢出引起的复位

[复制链接]
2288|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时,看门狗计数器溢出则会发生看门狗溢出唤醒芯片,但在这个过程中一定要注意不能出现入堆栈后未退出的状态,否则运行几次后堆栈就会溢出并导致芯片执行混乱。
 楼主| colorful88 发表于 2014-11-27 09:16 | 显示全部楼层
yewuyi 发表于 2014-11-26 11:39
sleep之后,看门狗定时器并不会停止计数,当sleep时,看门狗计数器溢出则会发生看门狗溢出唤醒芯片,但在这 ...

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

本版积分规则

18

主题

56

帖子

0

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