gnu ld脚本总结
GNU ld脚本总结 格式定义 举例1 举例2 格式定义 SECTION [ADDRESS] [ ( TYPE ) ] : [AT(LMA)] { OUTPUT - SECTION - COMMAND OUTPUT - SECTION - COMMAND . . . } [ >REGION ] [AT>LMA_REGION] [ :PHDR :PHDR . . . ] [ =FILLEXP ] 功能:将*.O的ELF文件的各种段(输入段)通过脚本重新打包并规定好保存地址和执行地址,这个就是bin文件。 SECTION:表示输出段的名称,{}内的内容为*.O的输入段名 LMA: bin存放的地址,一般指ROM。 VMA: 代码运行的地址,例如,当在ram中运行时。 LMA: bin存放的地址,一般指ROM。 [ADDRESS]:表示运行地址(VMA),如果此处不配置VMA则可通过 [AT>LMA_REGION]配置 [AT(LMA)]:bin存放地址定义 [>REGION]: 表示放入的区范围,若section的空间SIZE超出REGION定义的范围则连接器会报错。此时可以设置[ADDRESS]表示在该区域中的具体开始地址;也可以不设置,使用region设置的范围。 注意: [ADDRESS] [(TYPE)] : [AT(LMA)] 定义了VMA和LMA的起始地址 [>REGION