Default memory map(ARM)

摘自: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0471c/Beihhaag.html

文档: ARM Compiler toolchain  Developing Software for ARM Processors.pdf

就不翻译了, 水平有限, 费时间, 免得误人子弟. 见谅则个!  ^_^

====================================================================================

In an image where you have not described the memory map, the linker places code and data according to a default memory map, as shown in the following figure:

Figure 2. Default memory map

Note

The processors based on ARMv6-M and ARMv7-M architectures have fixed memory maps. This makes porting software easier between different systems based on these processors.

The default memory map is described as follows:

  • The image is linked to load and run at address 0x8000. All Read Only (RO) sections are placed first, followed by Read-Write(RW) sections, then Zero Initialized (ZI) sections.

  • The heap follows directly on from the top of ZI, so the exact location is decided at link time.

  • The stack base location is provided by a semihosting operation during application startup. The value returned by this semihosting operation depends on the debug environment.

The linker observes a set of rules to decide where in memory code and data is located:

Figure 3. Linker placement rules


Generally, the linker sorts the input sections by attribute, by name, and then by position in the input list.

To fully control the placement of code and data you must use the scatter-loading mechanism.



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值