ld链接文件

1. sections缩写

在这里插入图片描述
在这里插入图片描述

2. 链接脚本

https://www.cnblogs.com/jianhua1992/p/16852784.html

2.1 MEMORY(内存命令)

2.1.1 作用

对存储区域进行设置,定义区域的首地址ORIGIN,大小LENGTH,读写权限

2.1.2 格式

MEMORY{
name [(attr)] : ORIGIN = origin, LENGTH = len

}
在这里插入图片描述

2.2 SECTIONS(段命令)

2.2.1 作用

设置程序中各个段放在指定的地址空间,包括TEXT\RODATA\DATA\BSS\堆栈段。

2.2.2 格式

SECTIONS
{

secname [start_ADDR] [(TYPE)] : [AT (LMA_ADDR)]
{
contents
} [>REGION] [AT>LMA_REGION] [:PHDR HDR …] [=FILLEXP]

}
备注:
1、[ ]内的内容为可选选项, 一般不需要。
2、Secname右边的空格、冒号、花括号是必须的。
在这里插入图片描述
Eg1: [>REGION] 和 [AT>LMA_REGION]
在这里插入图片描述

“> WP_CAL1 AT> RP_CAL1” 表示将.calData定义的东西加载到WP_CAL1这一块区域上运行。而它的实际地址在RP_CAL1里(这里存放数据)
Eg2:输入段
*(.text)
把所有输入段放入’.text’段。
更多使用方法见:https://www.cnblogs.com/jianhua1992/p/16852784.html
“3.6.4.1 Input Section Basics”

2.3 特殊符号含义

在这里插入图片描述
Eg:
在这里插入图片描述
含义:isr_vector段放在FLASH区域的首地址,其内容都是4字节地址对齐,TEXT段紧接着放在isr_vector段后面,其内容也是4字节地址对齐, etext变量的值为TEXT段的末地址。

2.4 通配符

在这里插入图片描述

2.5 Eg

在这里插入图片描述
指引链接器把所有 ‘.text’ 段放在’ ‘.text’ 里,以及所有 ’.bss’ 段放到 ’.bss’ 中。链接器将会把所有以大写字母开头的文件的 ’.data’ 段放入 ’.DATA’ ,其他文件的 ’.data’ 段放入 ’.data’

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hightec是一种链接脚本文件ld的编写工具。链接脚本文件是用来指导链接器如何将源代码编译后的目标文件进行链接的。 在使用Hightec链接器时,我们首先需要创建一个链接脚本文件链接脚本文件通常以.ld为后缀名。在这个文件中,我们可以定义链接器的各种属性和行为,例如内存布局、段地址、输入文件等。 链接脚本文件通常包含以下几个重要的部分: 1. 文件格式:指定了目标文件的格式类型,如ELF、COFF等。 2. 入口点:指定程序的入口地址,即程序从哪里开始执行。 3. 内存布局:定义程序在内存中的布局,包括栈、堆、数据段、代码段等各个部分的起始地址和大小。 4. 输入文件:指定要链接的目标文件列表,告诉链接器源文件在哪里,以及将它们链接到哪些段中。 除了以上几个常用的部分,链接脚本文件还可以定义其他一些特殊的属性,例如初始化函数、符号表、重定位等。 使用Hightec链接脚本编写ld文件时,我们需要了解目标平台的硬件架构和软件环境,以便正确配置链接器的各项属性。同时,还需要根据实际的需求和要求,对链接脚本文件进行相应的修改和调整。 总之,Hightec链接脚本文件的编写是一项非常重要的工作,通过编写合适的链接脚本文件,可以帮助我们更好地控制和优化程序的内存布局,提升程序的性能和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值