#1楼主:IAREW编译出错
文章发表于:2008-08-19 08:24
请问各位:
我的程序不正常了
The stack 'CSTACK' is filled to 100% (1536 bytes used out of 1536). The warning threshold is set to 90.%
这个错误是不是堆栈溢出了?在哪改堆栈呢?我在这里
-D_CSTACK_SIZE=600
-D_HEAP_SIZE=300
改了之后程序还是会跑飞,各位指教一下吧
#2
文章发表于:2008-08-19 23:31
程序跑飞与编译得到警告是两回事,跑飞的程序也有警告吗?有警告并不一定是程序跑飞原因。
#3
文章发表于:2008-08-20 07:41
是这样的,我的触摸屏程序随着我的操作往下执行以后,执行到一定地步程序就不正常了,返回起始位置了,我此时暂停程序就会有以下提示
The stack 'CSTACK' is filled to 100% (1536 bytes used out of 1536). The warning threshold is set to 90.%
不对触摸屏操作的话没问题,暂停程序也没有如上提示。
#4
文章发表于:2008-08-20 22:20
从表象来看,应该是堆栈溢出的现象,你的程序中可能开启了太多的中断,每一次中断都会消耗至少五、六十个字节的堆栈空间,如果程序中发生中断嵌套的现象且程序的深度过大,默认的400堆栈空间就有可能不够用。
应该优化程序的深度,尤其是注意尽可能的减少发生中断嵌套的可能。当然也可以进一步加大堆栈空间看看效果。