堆栈溢出?

[复制链接]
 楼主| heweibig 发表于 2018-2-3 21:28 | 显示全部楼层 |阅读模式
AC, ST, TE, ck, se
做的一个流量计。DEBUG的时候提示

Sun Mar 17, 2013 11:13:14: The stack 'Stack' is filled to 95% (76 bytes used out of 80). The warning threshold is set to 90.%
Sun Mar 17, 2013 11:13:37: Breakpoint hit: Code @ TEMP_PRESS.c:191.5
Sun Mar 17, 2013 11:13:37: The stack 'Stack' is filled to 100% (80 bytes used out of 80). The warning threshold is set to 90.%
Sun Mar 17, 2013 11:13:41: Breakpoint hit: Code @ TEMP_PRESS.c:191.5
Sun Mar 17, 2013 11:13:41: The stack 'Stack' is filled to 100% (80 bytes used out of 80). The warning threshold is set to 90.%
Sun Mar 17, 2013 11:14:28: Breakpoint hit: Code @ TEMP_PRESS.c:191.5

一开始使用95%  后来一直就是100% 这是什么原因呢? 有什么危害?
dirtwillfly 发表于 2018-2-3 21:30 | 显示全部楼层
很可能运行到后面堆栈会越界,造成程序跑飞、死机等
wuhany 发表于 2018-2-3 22:55 | 显示全部楼层
这还能用吗
 楼主| heweibig 发表于 2018-2-3 22:58 | 显示全部楼层
貌似现在这个仪表工作还是比较稳定的。。。
wyjie 发表于 2018-2-3 23:01 | 显示全部楼层

溢出会出现莫名其妙的错误   在写程序时   最好估算一下代码量   这样选片子比较容易一点
dirtwillfly 发表于 2018-2-4 12:53 | 显示全部楼层
heweibig 发表于 2018-2-3 22:58
貌似现在这个仪表工作还是比较稳定的。。。

把堆栈空间设置大一些就可以,很容易的
 楼主| heweibig 发表于 2018-2-5 21:01 | 显示全部楼层

奇怪的是这个程序跑起来一直还算稳定。 这两天调试的时候刚发现的!
lizye 发表于 2018-2-5 21:04 | 显示全部楼层

保险起见还是先调大一些吧。
shimx 发表于 2018-2-5 21:07 | 显示全部楼层
一般的调试器会预先用某个特定值比如0xFF来初始化所有的堆栈

然后在每次代码中断运行,进入调试状态的时候去检查一下堆栈,看看堆栈内的数据有多少已经不是0xFF,就意味着代码已经使用了多少堆栈
jiaxw 发表于 2018-2-5 21:16 | 显示全部楼层

一般出现顶楼这样的错误可能就是确实堆栈越界了,代码使用到了100%的堆栈。
但是说实话,如果是这个原因,基本代码也不会正常工作了
spark周 发表于 2018-2-5 21:19 | 显示全部楼层

代码本身有些问题,有些数据误写入堆栈区域了。实际的堆栈可能只用了30%,但是代码误操作了堆栈最后面的地址,导致调试器初始化的值被修改了。调试器也就认为堆栈越界了。
jkl21 发表于 2018-2-6 20:13 | 显示全部楼层
大部分都是因开启了中断
maqianqu 发表于 2018-2-6 20:13 | 显示全部楼层
用的是哪个版本的IAR和哪个版本的SDK
dspmana 发表于 2018-2-6 20:13 | 显示全部楼层
开启了相关中断但是没有中断服务程序
eefas 发表于 2018-2-6 20:14 | 显示全部楼层
option->debugger里有个download,里面有个use flash loader选项
aspoke 发表于 2018-2-6 20:15 | 显示全部楼层
这个是什么软件芯片?
jkl21 发表于 2018-2-6 20:19 | 显示全部楼层
没有对应的中断处理函数导致
maqianqu 发表于 2018-2-6 20:19 | 显示全部楼层
开发的是什么mcu?
eefas 发表于 2018-2-6 20:19 | 显示全部楼层
勾选上问题就解决了
aspoke 发表于 2018-2-6 20:19 | 显示全部楼层
是不是代码的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

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