wpsook 发表于 2010-7-31 11:09:47

请教堆问题

对于LPC21XX的startup.s中
   AREA    Heap, DATA, NOINIT
bottom_of_heap    SPACE   1

      AREA    StackBottom, DATA, NOINIT
bottom_of_Stacks    SPACE   1

      AREA    HeapTop, DATA, NOINIT
top_of_heap

      AREA    Stacks, DATA, NOINIT
StackUsr

//-------------------------------------------------
为什么,有些AREA有分配字节空间,有时AREA却没有呢.
下面这个AREA分配了空间
   AREA    Heap, DATA, NOINIT
bottom_of_heap    SPACE   1
这里分配了一个空间.

而下面这里却没有分配空间
      AREA    HeapTop, DATA, NOINIT
top_of_heap

麻烦帮忙解答一下,谢谢.

aaa1982 发表于 2010-8-1 22:54:02

个人理解:

上面是说在 AREA    Heap, DATA, NOINIT 这个segment里面占了一个字节的位置留给heap。

下面是说在刚才占位的地方放一个地址标号(top_of_heap),下回你通过这个地址标号就可以访问这个预留的堆空间了。

wpsook 发表于 2010-8-4 22:01:04

1楼,谢谢你的回答,

上面是说在 AREA    Heap, DATA, NOINIT 这个segment里面占了一个字节的位置留给heap。
----没错,是这样的.

下面是说在刚才占位的地方放一个地址标号(top_of_heap),下回你通过这个地址标号就可以访问这个预留的堆空间了。
----刚才占位的地方,是Heap的一个字节吗?
但好像是分开的,
      AREA    StackBottom, DATA, NOINIT
bottom_of_Stacks    SPACE   1
这里StackBottom也占了一个字节的空间.

那么Heap和top_of_heap就没连续了.

-------------------------------------
如果全部AREA全部定义为占一个字节空间
AREA    XXXX, DATA, NOINIT
LABLESPACE   1
跟没定义字节空间,
AREA    XXXX, DATA, NOINIT
LABLE

这两个有什么差别吗?
页: [1]
查看完整版本: 请教堆问题