打印

求助:栈满了怎么办

[复制链接]
2343|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shangelaila|  楼主 | 2010-7-10 11:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AC, ck, se, ST, Stack
:'(程序以前一直跑都没问题,现在出现错误:
Sat Jul 10 11:58:55 2010: The stack 'CSTACK' is filled to 90% (928 bytes used out of 1024). The warning threshold is set to 90.%


请问怎么回事?为什么突然就这样了?
沙发
ecomputer| | 2010-7-10 13:28 | 只看该作者
程序中减小局部变量,减少函数嵌套调用的层数

使用特权

评论回复
板凳
shangelaila|  楼主 | 2010-7-10 14:05 | 只看该作者
我把CSTACK改大之后,居然filled to 95%了 - -!
Sat Jul 10 14:15:30 2010: The stack 'CSTACK' is filled to 95% (1952 bytes used out of 2048). The warning threshold is set to 90.%
纠结啊。。。这是为什么啊!!!

使用特权

评论回复
地板
香水城| | 2010-7-10 14:19 | 只看该作者
查查程序中是否有嵌套的调用层次太多了。

使用特权

评论回复
5
sinadz| | 2010-7-10 20:41 | 只看该作者
嵌套层数不宜太多,不过2楼说局部变量不宜用太多,不太理解

使用特权

评论回复
6
neaphy| | 2010-7-10 20:56 | 只看该作者
局部变量是在栈空间,所以去检查一下你的各个函数,估计是你在某个函数中定义了一个很大的数组

使用特权

评论回复
7
txcy| | 2010-7-10 21:35 | 只看该作者
以前一直正常,没改过程序?

使用特权

评论回复
8
shangelaila|  楼主 | 2010-7-12 08:02 | 只看该作者
7# txcy
程序没改过,运行的时候正常,就是设置断点的时候,会出来那个

使用特权

评论回复
9
IJK| | 2010-7-12 09:14 | 只看该作者
7# txcy
程序没改过,运行的时候正常,就是设置断点的时候,会出来那个
shangelaila 发表于 2010-7-12 08:02


IAR EWARM有时候在改过设置后,程序没改动,会出现这种情况。最好把整个项目恢复到原来的状态,应该就可以了。另外,注意一下EWARM有没有升级过。

使用特权

评论回复
10
shangelaila|  楼主 | 2010-7-12 16:08 | 只看该作者
呵呵,因为我把堆栈从1024加到了2048发现还是有这个警告,我就感觉不是被占用的问题
仔细检查发现有个全局数组访问的时候越界了:$
问题解决,结贴给分!谢谢大家

使用特权

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

本版积分规则

0

主题

120

帖子

1

粉丝