打印
[AVR单片机]

AVR的堆栈为什么是向下生长的?

[复制链接]
4857|17
手机看帖
扫描二维码
随时随地手机跟帖
沙发
laslison| | 2010-4-23 22:20 | 只看该作者
堆栈向低地址生长,即递减堆栈,这么做的好处不是很清楚

使用特权

评论回复
板凳
lpydidi| | 2010-4-23 22:49 | 只看该作者
这个很多地方都这么用,很难说出个所以然来

使用特权

评论回复
地板
ershisi| | 2010-4-23 23:13 | 只看该作者
我也想知道,高手呢

使用特权

评论回复
5
BitFu| | 2010-4-24 10:03 | 只看该作者
这只能说是一种合理的安排,严格来讲栈才是向下增长的,而堆是向上增长的,看下面的GCC对RAM的使用情况就知道了。

使用特权

评论回复
6
ccxlslr| | 2010-4-24 14:02 | 只看该作者
个人觉得,向下增长便于安排RAM空间

因为无论RAM如何使用,堆栈都是固定的

使用特权

评论回复
7
byeyear| | 2010-4-24 17:35 | 只看该作者
一个复杂的系统,很难确定运行时所需栈大小。让栈往下长,写程序的人就没有必要关心栈要开多大了。

使用特权

评论回复
8
chuxh| | 2010-4-24 21:29 | 只看该作者
你是说递减堆栈吧

使用特权

评论回复
9
ershisi| | 2010-4-24 22:42 | 只看该作者
“看下面的GCC对RAM的使用情况就知道了”:o,没看出来

使用特权

评论回复
10
suoma| | 2010-4-24 23:01 | 只看该作者
9# ershisi
大概就是8楼那个意思,便于安排RAM空间

使用特权

评论回复
11
丁弋宇| | 2010-4-25 15:18 | 只看该作者
堆栈是2个概念
堆和栈
堆向上长,栈向下

使用特权

评论回复
12
NE5532| | 2010-4-25 21:18 | 只看该作者
应该是最大限度使用RAM空间。

使用特权

评论回复
13
happytiger2010| | 2010-4-25 21:59 | 只看该作者
什么是向上增长和向下增长

使用特权

评论回复
14
lpydidi| | 2010-4-25 22:39 | 只看该作者
13# happytiger2010
哈哈,这个我知道,向下就栈顶指针自动往低地址走,低地址在下面

使用特权

评论回复
15
wangwo| | 2010-4-25 23:12 | 只看该作者
“堆向上长,栈向下”那堆栈到底往哪儿长啊:lol

使用特权

评论回复
16
丁弋宇| | 2010-4-26 11:23 | 只看该作者
:lol中间包围
堆栈堆栈,不是一个词
heap和stack

使用特权

评论回复
17
jbb0523| | 2010-4-26 21:23 | 只看该作者
在ARM中是这样的,如果你使用STMFD和LDRFD就是满递减堆栈,它就是从高地址向下增长的。

使用特权

评论回复
18
flushbonading| | 2011-12-5 13:56 | 只看该作者
楼主的问题我不清楚,我只知道虽然ARM对堆栈的各种模式都支持,但ADS的C语言编译器只支持堆栈从上像下增长,而且必须是满堆栈,希望有借鉴作用

使用特权

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

本版积分规则

0

主题

218

帖子

1

粉丝