MDK 启动文件的链接

2019-08-14 05:27发布

本帖最后由 16777216 于 2017-8-26 15:42 编辑

在看STM32的启动文件,突然有两个问题

1.堆栈的初始地址是怎么分配下来的,启动文件有
[mw_shl_code=c,true]Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp
                                                  
; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000200

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit[/mw_shl_code]

1.1但是起始地址应该是在链接的环节分配的吧?这个在哪里看的? 1.2 Stack_Mem       SPACE   Stack_Size       这里的标号  Stack_Mem       表示的是什么

2.启动文件的汇编没有入口  ENTRY啊? 哪里是入口?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
taizonglai
1楼-- · 2019-08-14 09:41
Stack_Mem就是堆!通过SPACE来预留一段内存给堆,预留的大小为Stack_Size!入口不需要一定得ENTRY来指定!从上往下,依次执行指令。
16777216
2楼-- · 2019-08-14 11:53
 精彩回答 2  元偷偷看……
16777216
3楼-- · 2019-08-14 14:33
zuozhongkai 发表于 2017-8-26 18:29
Stack_Mem就是堆!通过SPACE来预留一段内存给堆,预留的大小为Stack_Size!入口不需要一定得ENTRY来指定! ...

那这样的话  
__heap_base 和 Heap_Mem  不是重复了么,表示的东西是一样的?

一周热门 更多>