4754|0

12

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

一个非常奇怪的堆栈溢出的问题(IAR MSP430) [复制链接]

现象:
1、刚把程序载进去,还没运行,堆栈就快满了

刚刚把程序下载进去,还没有运行,就提示堆栈快溢出了:Wed Apr 25 16:12:28 2012: The stack 'Stack' is filled to 99% (4992 bytes used out of 5000). The warning threshold is set to 90.%  


我尝试过:把栈设成2048,3000,4000,5000 均无济于事。 如果是数组越界或者中断造成的问题,那么应该是运行之后产生的,而不应该是下载进去就产生。

2、程序运行起来后,堆栈使用量有变回正常状态。

程序运行起来后,堆栈使用量有变回正常状态,那开始的中断溢出是什么情况??


3、删除掉主函数中的某些函数或者把在main之前的某些注释掉的函数回复,可以消除下载堆栈溢出的症状,但是运行到某些函数(固定的)内的时候,还是会出现堆栈溢出警告。


4、如果运行中出现堆栈溢出警告的话,没执行一步,堆栈内的数据一直都有变化,变化区域非常的大,而且数据均为 3f ff 等数据 3f ff 出现概率最大 最多几乎全是。

5、堆栈设成4000或者5000的时候,刚下载进去就报堆栈要快溢出,占堆栈的98%/99%.但是诡异的是,我把堆栈设成2048的时候,一下载进去报警堆栈要溢出,但是所占的却是90% or 93% 比4000和5000还少. 异或不解。非常诡异 把堆栈设成1000 ,竟然没事了,下载和运行都不会出现堆栈溢出警告。更加不理解了  

6、删掉sprintf()函数后,下载和运行都没有出现堆栈溢出警告。
但是sprintf()我以前的版本也有用到,没有出现过这个问题。

高手出招灭到它吧!!!!!!!!!!

相关图片在这里有:

http://topic.csdn.net/u/20120505/20/431fab75-9cb3-42d8-aa92-0ef919030c51.html

下载溢出.jpg (124.47 KB, 下载次数: 0)

一下载就溢出

一下载就溢出

下载溢出3.jpg (171.25 KB, 下载次数: 0)

注释掉gprs_send_buf()函数反倒溢出

注释掉gprs_send_buf()函数反倒溢出

下载溢出2.jpg (183.21 KB, 下载次数: 0)

恢复gprs_send_buf()函数却没有溢出

恢复gprs_send_buf()函数却没有溢出

下载溢出4.jpg (117.94 KB, 下载次数: 0)

关掉中断依然无用

关掉中断依然无用

运行溢出.jpg (211.62 KB, 下载次数: 0)

即使下载是不溢出,运行到这个函数里面依然会

即使下载是不溢出,运行到这个函数里面依然会

运行溢出2.jpg (212.32 KB, 下载次数: 0)

而且每运行一步RAM里面有大块大块的地址值在变化

而且每运行一步RAM里面有大块大块的地址值在变化
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表