Realview MDK 链接脚本文件详细解析(一)–链接符号

本文详细解析RealviewMDK链接脚本的作用及符号定义,介绍如何通过链接脚本控制程序链接,包括RO、RW和ZI段的地址描述符,以及如何在程序中引用这些描述符。

Realview MDK 链接脚本文件详细解析(一)–链接符号

Realview MDK 链接程序使用了两种方式控制程序的链接,即链接控制命令选项和链接脚本文件

链接脚本文件

链接脚本文件类型一般为:

xxxlink.sct

链接符号说明

当使用链接控制命令选项时,链接器定义了Image$$RO$$BaseImage$$RO$$LimitImage$$RW$$BaseImage$$RW$$LimitImage$$ZI$$LimitImage$$ZI$$Limit 等 6 个段地址描述符。这 6 个描述符可以直接在程序中引用,而在使用链接脚本后,这 6 个描述符号就没有了,取而代之的是
链接脚本文件中的段描述符,格式为:Image$$段名$$BaseImage$$段名$$Limit

链接符号含义

序号段名含义
1Image$$RO$$BaseRO 段的起始地址
2Image$$RO$$LimitRO 段的结束地址
3Image$$RW$$BaseRW 段的起始地址
4Image$$RW$$LimitRW 段的结束地址
5Image$$ZI$$BaseZI 段的起始地址
6Image$$ZI$$LimitZI 段的结束地址

链接符号使用示例

示例一

extern int Image$$RW_IRAM1$$ZI$$Limit;
#define HEAP_SIZE       (100 * 2014)
#define HEAP_BEGIN      (&Image$$RW_IRAM1$$ZI$$Limit)
#define HEAP_END        HEAP_SIZE

上述宏定义了堆的起始地址,即 ZI 段的结束地址,堆的大小为 HEAP_SIZE。也就是说从 ZI 段的结束地址ZI 段的结束地址 + HEAP_SIZE 这一段空间用户可以作为堆来使用。例如在 RT-Thread 源码中有

rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tyustli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值