u-boot链接脚本
2013-07-31 13:48
176 查看
arm-limux-gcc将所有的.c文件编译成.o文件后,需要将它们组织成一个可执行文件。怎么组织,这就是u-boot.lds的事了!它一般存放在/board/xxxx/
下面贴出TQ2440中所用的u-boot-1.1.6中所用的链接文件u-boot.lds
上面的程序的VMA地址是从0x00000000处开始的,但是很多时候我们要求VMA从某个地址开始,所以我们可以通过设置/board/xxxx/config.mk文件来指定u-boot的VMA的开始基地址,该文件只定义了一个变量TEXT_BASE = 0x33D00000(针对TQ2440)
然后在程序编译的时候,config.mk和u-boot.lds共同决定了程序的VMA起始地址。
参考文件
Linux链接脚本详解
下面贴出TQ2440中所用的u-boot-1.1.6中所用的链接文件u-boot.lds
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")//可执行文件的格式 OUTPUT_ARCH(arm) //可执行文件的建构 (_start) //可执行文件的第一条可执行指令的地址,该标号在u-boot的/cpu/arm920t/start.S中定义 SECTIONS { . = 0x00000000; //.是一个特殊的符号,它是定位器,一个位置指针,现在程序的程序的虚拟地址(VMA)指向0x00000000 . = ALIGN(4); //调整.定位器的值,使它能够4字节对齐 .text : //紧接着就存放程序的.text段 { cpu/arm920t/start.o(.text) board/EmbedSky/boot_init.o(.text) board/EmbedSky/lowlevel_init.o (.text) *(.text) //将start.o,boot_init.o,lowevel_init.o的代码段存放在程序的开始,然后紧接着就保存所有其他.o文件的代码段 } . = ALIGN(4); //调整.定位器的值,使它能够4字节对齐 .rodata : { *(.rodata) }//紧接着存放所有.o文件的只读数据段 . = ALIGN(4); //调整.定位器的值,使它能够4字节对齐 .data : { *(.data) } //紧接着存放所有.o文件的初始化的全局变量和初始化的静态变量 . = ALIGN(4); //调整.定位器的值,使它能够4字节对齐 .got : { *(.got) } //紧接着存放所有.o文件的初始化的got段 . = .; __u_boot_cmd_start = .; //外部变量 __u_boot_cmd_start的值为当前定位器的值,u-boot源码中会使用该变量 .u_boot_cmd : { *(.u_boot_cmd) }//紧接着存放所有.o文件中段属性为.u_boot_的程序段,该段是用户自定义段,用来存放u-boot命令 __u_boot_cmd_end = .; //外部变量 __u_boot_cmd_end的值为当前定位器的值,u-boot源码中会使用该变量 . = ALIGN(4); //调整.定位器的值,使它能够4字节对齐 __bss_start = .; //外部变量 __bss_start的值为当前定位器的值,u-boot源码中会使用该变量 .bss : { *(.bss) } //紧接着存放所有.o文件中的未初始化的全局变量 _end = .; //外部变量 _end的值为当前定位器的值,u-boot源码中会使用该变量 }链接程序就可以根据上面的链接脚本将大量编译好的.o文件链接生成一个.bin文件
上面的程序的VMA地址是从0x00000000处开始的,但是很多时候我们要求VMA从某个地址开始,所以我们可以通过设置/board/xxxx/config.mk文件来指定u-boot的VMA的开始基地址,该文件只定义了一个变量TEXT_BASE = 0x33D00000(针对TQ2440)
然后在程序编译的时候,config.mk和u-boot.lds共同决定了程序的VMA起始地址。
参考文件
Linux链接脚本详解
相关文章推荐
- u-boot.lds链接脚本分析
- u-boot链接脚本解析
- 移植u-boot到mini2440--理解映像链接脚本lds
- 四、u-boot 链接脚本
- u-boot.lds链接脚本分析
- u-boot中.lds链接脚本文件的分析
- u-boot链接脚本解析
- u-boot中.lds链接脚本文件的分析
- 第2阶段——编写uboot之硬件初始化和制作链接脚本lds(1)
- uboot的链接脚本u-boot.lds
- powerpc uboot链接脚本大改造
- u-boot.lds 链接脚本分析(hi3515)
- u-boot链接脚本解析
- S5PV210 uboot中的链接脚本u-boot.lds
- Uboot之u-boot.lds的链接脚本
- 基于2410开发板 U-Boot 链接脚本文件分析
- u-boot中.lds链接脚本文件的分析
- u-boot链接脚本分析
- uboot.lds 链接脚本语法规则
- u-boot中.lds链接脚本文件的分析