求助,关于启动文件中的堆栈

2019-07-20 21:10发布

在启动文件中定义了栈的大小是0x400,堆的大小是0x200
Stack_Size      EQU    0x00000400

              AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem    SPACE  Stack_Size
__initial_sp

Heap_Size     EQU    0x00000200

            AREA    HEAP, NOINIT, READWRITE,ALIGN=3
__heap_base
Heap_Mem  SPACE   Heap_Size
__heap_limit

那么栈顶地址不是应该是0x20000600吗?但我在map文件查到的是0x20000738
__initial_sp                             0x20000738   Data           0  startup_stm32f40_41xxx.o(STACK)

请问是不是我理解错了






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
Fighting_Tao
2019-07-21 07:23
aozima 发表于 2016-7-25 11:37
翻译成C语言就是  [mw ...

嗯嗯,这几句汇编我看得懂。
[mw_shl_code=applescript,true]    HEAP                                     0x20000160   Section      512  startup_stm32f40_41xxx.o(HEAP)
    Heap_Mem                                 0x20000160   Data         512  startup_stm32f40_41xxx.o(HEAP)
    STACK                                    0x20000360   Section     1024  startup_stm32f40_41xxx.o(STACK)
    Stack_Mem                                0x20000360   Data        1024  startup_stm32f40_41xxx.o(STACK)
    __initial_sp                             0x20000760   Data           0  startup_stm32f40_41xxx.o(STACK)[/mw_shl_code]
这几句话是不是说栈从栈顶 0x20000760 开始向下生长,堆从0x20000160向上生长啊

一周热门 更多>