专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 单片机

为啥堆栈设大了溢出,设小了反而不溢出呢

发布时间:2010-06-14 15:25:14 文章来源:www.iduyao.cn 采编人员:星星草
为什么堆栈设大了溢出,设小了反而不溢出呢?
单片机堆栈设1024K下载进去,没事,只是运行的时候堆栈占用的比例比较大,担心中途不够用,就设大点,设成2048,一下载进去,完了,竟然出现堆栈快要溢出警告:98%……  这是什么情况。

还有更诡异的情况,看这里,有图有真相!!
http://topic.csdn.net/u/20120505/20/431fab75-9cb3-42d8-aa92-0ef919030c51.html
------解决方案--------------------
我不知道你用的什么单片机,我曾经用过ATMEL128的,也遇到过好像类似的问题,不过不确信是不是同样的。我的问题是这样的,在编译环境里面也有一个设置堆站的。当时因为我的程序比较庞大(数据量比较大),结果一运行程序老出现乱码,堆站溢出。原因原来是这样的,它的编译器把堆站分为了软堆站和硬堆站,一个用于存放中间数据,一个用于类似函数中断的,结果设得那个值是用于硬中断的,最后把设得值调小了最好了,因为硬中断小点了,软中断就大了,所以就将就不溢出了。
    可能你没看懂,我就是给个参考,你先明确你设得那个数值的具体含义是什么,比如说我设得那个我以为是软中断,溢出了应该设大点得呀。明确了再看看为什么
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: