📄 10 arm linker.txt
字号:
为RW属性输出段指定开始地址,一个域可以有1-3个输出段,RW输出段是其中一个.如果域中有RO输出段,则RW输出段的地址就不是域的开始地址.该地址是执行地址,且必须字对准.如果和选项 -split 一起使用,那么该地址同时也是加载地址.
RWpi : 指定包含RW属性输出段的加载域和执行域是位置无关PI,
Split Imag :
系统默认将RO和RW两个属性的输出段包含在一个加载域中,RO属性输出段在前,
选该项,将包含RW属性和RO属性的输出段的加载时域分割成两个加载时域.
relocatable :
生成可重定位的映像
---------- 小结 ----------
1. 当选择Partial连接类型时,需要进行下列连接器选项设置:
Symbol:用于指定一个符号定义文件的名称.符号定义文件是一个文本文件,它的使用方法和使用普通的目标文件相同,将其作为ARM连接器的输入文件.ARM连接器从符号定义文件中提取需要的符号及相关信息,将这些信息加入到输出符号表中.
Symbol editing:用于指定一个符号编辑文件的名称.符号编辑文件是一个文本文件,用于修改输出文件中的输出符号表的内容.符号编辑文件中的命令可以完成隐藏全局符号的操作以及重命名全局符号的操作.
2. 当选择Simple连接类型时,需要进行下列连接器选项设置:
RO Base:用于设置映像文件中RO属性输出段的加载时地址和运行时地址,地址值必须是字对齐的.
RW Base:映像文件中包含RW属性和ZI属性的输出段的运行时域的起始地址,地址是字对齐的.如果没有设置,则RW属性输出段和ZI属性输出段与RO属性输出段共享一个加载时域和一个运行时域.设置该选项后,映像文件包括两个运行时域,一个包含RO属性输出段,另一个包含RW属性输出段和ZI属性输出段.当指定了split选项时,映像文件包括两个加载时域,一个包含RO属性输出段,另一个包含RW属性输出段和ZI属性输出段.
Ropi:选中该复选框,映像文件中RO属性的加载时域和运行时域是位置无关的;如果没有选中,相应的域被标记为绝对的.
Rwpi:选中该复选框,映像文件中RW属性和ZI属性的输出段的加载时域和运行时域是位置无关的;如果没有选中,相应的域被标记为绝对的.
Split:选中该复选框,将包含RW属性和RO属性的输出段的加载时域分割成两个加载时域.
Symbol文本框和Symbol editing文本框:与选择Partial连接类型时相同.
3. 当选择Scatter连接类型时,需要进行下列连接器选项设置:
Scatter文本框:用于指定ARM连接器使用的scatter格式的配置文件的名称.该配置文件是一个文本文件,用于指定映像文件地址映射方式,其中包含了各域及各段的分组和定位信息.
Symbol文本框和Symbol editing文本框:与选择Partial连接类型时相同.
图形方式中专有的选项:
Simple
Scattered
10.3.3 Option : 一些链接器特性的选项
1. Remove unused sections: 可以删除映像文件中没有使用的段.Read-only,Read-Write和Zero-initial分别表示可以删除的未使用的段的属性.
小心,使用该选项时不要误删除异常中断处理程序段.可以使用 -keep 选项保留异常中断处理程序段.
2. Include debugging information: 选中该复选框,在输出文件中包含调试信息.这些调试信息包括调试信息输入段,符号表以及字符串表.
3. Give progress information while: 选中该复选框,ARM连接器在进行连接时显示进度信息.
4. Search standard librari: 选中该复选框,ARM连接器扫描默认的C\C++运行时的库,以解析各目标文件中被引用的符号.
5. Report might faill conditions as errors: 中该复选框,ARM汇编器将可能造成错误的条件作为错误信息,而不是警告信息
6. Use ARMLIB to find libraries: 选中该复选框,连接器使用ARMLIB环境变量定义的路径搜索C运行时库,而不使用Target setting面板中的Access Paths选项组中定义的搜索路径.
7. Output local symbols: 选中该复选框,ARM连接器在生成映像文件时,将局部符号也保存到输出符号表中.
8. Image entry point: 该选项组用于指定映像文件中的初始入口点的地址值.一个映像文件可以包括多个普通入口点,但是初始入口点只能有一个.地址空间不能被覆盖,而且加载地址和执行地址是同一个地址.当映像文件被一个加载程序加载时,加载程序将跳转到该初始入口点处执行.
Layout : 连接方式为Simple时有效,用来安排一些输入段在映像文件中的位置.为映像文件指定排列在前面和排列在后面的段
1. Place at beginning of image:指定将某个输入段放置在它所在的运行时域的开头.有下面两种方法来指定一个输入段:
在Object/Symbol文本框中指定一个符号名称.这时定义本符号的输入段被指定.
在Object/Symbol文本框中指定一个目标文件名称,在Section文本框中指定一个输入段名称,从而确定一个输入段作为指定的输入段.
2. Place at end of image:用于指定将某个输入段放置在它所在的执行时域的结尾.指定一个输入段的两种方法与Place at beginning of image选项组中相同.
Listings : 列表文件控制选项
1. Image map:选中该复选框,连接器产生一个关于映像文件的信息图,包括各运行时域,加载时域和映像文件中各输入段的起始地址和大小.
2. Symbols :选中该复选框,连接器列出连接过程中的局部和全局符号及其数值,包括连接器产生的符号
3. Mangled C++ :选中该复选框,连接器在诊断信息和连接选项-xref,-xreffrom,-xrefto,-symbol产生的列表中显示mangled的C++符号名称.
4. Section cross-reference: :选中该复选框,连接器列出所有输入段间的交叉引用.
5. List file:文本框用于指定列表文件名称及路径.
6. Static call graph:选中该复选框,连接器显示程序间的调用关系.
7. Give Information on选项组:用于控制连接器显示有关映像文件的信息.
Sizes :选中该复选框,连接器列出映像文件中各输入目标文件和使用到的库文件的大小.
Totals :选中该复选框,连接器列出映像文件中各输入目标文件和使用到的库文件的尺寸的总合.
Unused :选中该复选框,连接器列出被删除的没有被使用的输入段信息.
Veneers :选中该复选框,连接器列出生成的veneers的信息.
Extras : 引入via文件
1. Make undefined symbols refer to:在该文本框输入一个已经定义的全局符号,用来代替映像文件中所有未定义的符号.ARM连接器在进行连接操作时,将所有未被解析的符号引用指向符号symbol.这种做法在自顶而下的设计中非常有用.在这种情况下使用本连接选项,可以连接部分实现的系统.
2. Via file name:在文本框中选择一个via格式的文件.Via格式的文件中包含了ARM连接器各命令行的选项,ARM连接器可以从该文件中读取相应的连接器命令行选项.这在限制命令行长度的操作系统中非常有用.
Extras选项卡如下:
10.4 链接器应用
映像文件在加载时,只有RO和RW属性的输出段,没有ZI属性的输出段.ZI属性的输出段,是在运行初始化程序时生成的.
10.5 地址映射过程和 scatter 描述文件
略过
fromELF工具的选项设置:可以将ARM连接器产生的ELF格式的映像文件转换成其他格式的文件.
Output format下拉列表框用于选择目标文件的格式.可能取值为:
Executable AIF:可执行的AIF格式的映像文件.
Non executable AIF:非可执行的AIF格式的映像文件.
Plain binary :BIN格式映像文件.
Intellec Hex :IHF格式映像文件.
Motorola 32 bit Hex: Motorola 32位S格式映像文件.
Intel 32 bit Hex: Intel 32位格式映像文件.
Verilog Hex: Verilog十六进制映像文件.
Text information 输出文本格式信息
ELF ELF格式
Byte Oriented Hex 字节导向的十六进制.
Structure Field Offsets 结构偏移格式
Text information文本信息
Output file name:设置fromELF工具的输出文件的名称.
Text format flags:用于置控制文本信息内容.
Verbose:连接器显示关于本次连接操作的详细信息.
Disassemble code:连接器显示反汇编代码.
Print contents of data sections:连接器显示数据段信息.
Print debug table:连接器显示调试表信息.
Print relocation information:连接器显示重定位信息.
Print symbol table:连接器显示符号表.
Print string table:连接器显示字符串表.
Print object sizes:连接器显示目标文件大小信息
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -