搜索
bottom↓
回复: 6

iar msp430可以不必设置堆栈大小?

[复制链接]

出0入0汤圆

发表于 2008-6-11 15:22:51 | 显示全部楼层 |阅读模式
编译器自动RAM最后一个地址作为堆栈起始地址(类似AVRGCC),
这样设置堆栈大小实际上并没有意义?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入42汤圆

发表于 2008-6-11 17:56:53 | 显示全部楼层
貌似不是这么回事啊.上次声明变量有超出,改大堆栈就好了.

出0入0汤圆

发表于 2008-6-11 18:00:12 | 显示全部楼层
需要设计的

不然在默认情况下,90%(80 * 90% = 72)的栈使用时就会在调试中报警

出0入0汤圆

 楼主| 发表于 2008-6-11 18:06:06 | 显示全部楼层
编译器自动把剩余RAM空间当作堆栈空间,所以设不设置堆栈大小,程序运行没什么区别。
这点类似AVRGCC,没听说过AVRGCC需要设置堆栈大小(不外扩RAM)。

我堆栈直接设置为0,
调试的时候会提示堆栈溢出警告,实际上程序还是正常运行。

出0入0汤圆

发表于 2010-6-13 22:33:47 | 显示全部楼层
堆栈使用情况可以通过查看LIST文件查看

出0入0汤圆

发表于 2010-7-14 11:55:37 | 显示全部楼层
准确设置堆栈,有利于掌握自己代码总共消耗了多少RAM资源

譬如实际消耗的堆栈可能需要100个,其他变量可能需要160个,按默认设置80个byte堆栈,或者你手动设为0,假设你芯片的RAM资源只有256,程序编译时不会给你报警,因为按你的设置,总共消耗80+160<256,但你实际跑起来,当最大堆栈用到100的时候,就肯定会跟一些变量重叠,引起跑飞
如果你知道自己消耗了堆栈100,手动把堆栈设为了100,那么编译器编译时就会提示你现在资源不够,防止你出错

程序堆栈的消耗,可以通过设置list文件包括内容来查看

出0入0汤圆

发表于 2014-11-10 20:08:42 | 显示全部楼层
scutllc 发表于 2010-7-14 11:55
准确设置堆栈,有利于掌握自己代码总共消耗了多少RAM资源

譬如实际消耗的堆栈可能需要100个,其他变量可能 ...

正有这类问题困扰,拜读了!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-2 14:39

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表