Chinaunix首页 | 论坛 | 博客
  • 博客访问: 322648
  • 博文数量: 85
  • 博客积分: 3433
  • 博客等级: 中校
  • 技术积分: 844
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-29 01:11
文章分类

全部博文(85)

文章存档

2013年(1)

2012年(12)

2011年(13)

2010年(59)

我的朋友

分类: LINUX

2010-12-07 18:22:16

 lds 文件说明
1.1 主要符号说明
1. OUTPUT_FORMAT(bfdname)
   指定输出可执行文件格式.
2.  OUTPUT_ARCH(bfdname)
   指定输出可执行文件所运行 CPU 平台
3. ENTRY(symbol)
   指定可执行文件的入口段
1.2 段定义说明
1.  段定义格式
   SECTIONS { ...
      段名 : {
          内容
      }
      ...
   }
1.3 u boot.lds 文件说明
OUTPUT_FORMAT("elf32 littlearm", "elf32 littlearm", "elf32 littlearm")
  ;指定输出可执行文件是 elf 格式,32 位 ARM 指令,小端
OUTPUT_ARCH(arm)
  ;指定输出可执行文件的平台为 ARM
ENTRY(_start)
  ;指定输出可执行文件的起始代码段为_start.
SECTIONS
{
          . = 0x00000000  ; 从 0x0 位置开始
          . = ALIGN(4) ; 代码以 4 字节对齐
          .text      :  ;指定代码段
          {
             cpu/arm920t/start.o   (.text) ; 代码的第一个代码部分
             *(.text)  ;其它代码部分
          }
          . = ALIGN(4) 
          .rodata : { *(.rodata) } ;指定只读数据段
          . = ALIGN(4);
          .data : { *(.data) } ;指定读/写数据段
          . = ALIGN(4);
          .got : { *(.got) } ;指定 got 段, got 段式是 uboot 自定义的一个段, 非标准段
          __u_boot_cmd_start = . ;把__u_boot_cmd_start 赋值为当前位置, 即起始位置
          .u_boot_cmd : { *(.u_boot_cmd) } ;指定 u_boot_cmd 段, uboot 把所有的 uboot 命令放在该段.
          __u_boot_cmd_end = .;把__u_boot_cmd_end 赋值为当前位置,即结束位置
          . = ALIGN(4);
          __bss_start = .; 把__bss_start 赋值为当前位置,即 bss 段的开始位置
          .bss : { *(.bss) }; 指定 bss 段
          _end = .; 把_end 赋值为当前位置,即 bss 段的结束位置
}
阅读(1362) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-08 14:58:18

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com