首页 > 其他 > 详细

关于U-Boot源码的 .lds 文件

时间:2014-03-11 15:23:42      阅读:458      评论:0      收藏:0      [点我收藏+]

今天看《Linux应用开发完全手册》U-Boot部分,发现.lds文件不知道是什么,上网查了一下资料,总结如下,不过还是有些问题待解决,大家知道可以一起讨论哈!

参考资料:http://blog.csdn.net/wenjie345304221/article/details/6859272,谢谢原作者!

 

 

.lds文件的作用

  • 决定可执行程序各个段的 存储位置 和 入口地址,即起链接定位的作用

 

 

.lds文件的使用

  • 编写好 .lds 文件后,在用arm-linux-ld连接命令时用选项”-T 文件名“来调用执行,也可用“-Ttext 地址”参数直接指定链接地址
  • 例如:"arm-linux-ld -T board/smdk2440/U-Boot.lds -Ttext 0x33F80000",指定了程序的布局和地址。

 

 

arm-linux-ld -T选项的说明

  使用它来指定:

  • 代码段:-Ttext   startaddress
  • 数据段:-Tdata  staraddress
  • bss段: -Tbss    startaddress

        的起始地址(运行地址)

  • 作用:Bootloader、内核等程序刚开始执行时,它们所处的地址通常不等于运行地址。所以-T选项的作用是将代码从Flash等设备中复制到内存的运行地址上,再跳到这个运行地址上执行程序

 

 

U-Boot.lds源码分析

  OUTPUT_ARCH(arm)    //输出平台架构为arm

  ENTRY(_start)       //指定输出可执行文件的起始代码为_start

  SECTIONS

  {

          . = 0x00000000;   //设置当前地址(用.表示)为0地址

 

          . = ALIGN(4);    //设置代码以四字节对齐

          .text      :      //命名这个段为.text

          {          // {}内决定哪些内容放在本段,可以是整个目标文件,也可以是目标文件中的某段(代码段,数据段等)

            cpu/arm920t/start.o   (.text)  //第一个代码段

            *(.text)             //其他代码段

          }

 

          . = ALIGN(4);

          .rodata : { *(.rodata) }    //设置只读数据段(readonly data)

 

          . = ALIGN(4);

          .data : { *(.data) }      //设置可读写的数据段

 

          . = ALIGN(4);

          .got : { *(.got) }       //这个是U-Boot的自定义段,非标准段

 

          . = .;             //这是为啥呢?我也不知道哈~ 待讨论

          __u_boot_cmd_start = .;   //把__u_boot_cmd这个段的起始地址设置为当前地址(.),为什么要加__?

          .u_boot_cmd : { *(.u_boot_cmd) }  //这就是u_boot_cmd段,U-Boot把所有命令都放在此段,为什么要加.?

          __u_boot_cmd_end = .;   //把__u_boot_cmd这个段的结束地址设置为当前地址(.),为什么要加__?

   

          . = ALIGN(4);         

          __bss_start = .;       //把__bss这个段的起始地址设置为当前地址(.),为什么要加__?

          .bss : { *(.bss) }       //这就是bss段,为什么要加.?

          _end = .;          //把__bss这个段的结束地址设置为当前地址(.),为什么不是__bss_end?

  }

关于U-Boot源码的 .lds 文件,布布扣,bubuko.com

关于U-Boot源码的 .lds 文件

原文:http://www.cnblogs.com/comeonjiji/p/3593254.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!