uboot之lds文件说明

lds文件说明

主要符号说明

1、OUTPUT_FORMAT(bfdname)

指定输出可执行文件格式。

2、OUTPUT_ARCH(bfdname)

指定输出可执行文件所运行CPU平台

3、ENTRY(symbol)

指定可执行文件的入口段

 

段定义说明

1、段定义格式

SECTIONS { ...

段名:{

        内容

}

        ...

}

 

u-boot.lds 文件说明

Code:
  1.   
  2. OUTPUT_FORMAT("elf32-littlearm""elf32-littlearm""elf32-littlearm")   
  3. /* 指定输出可执行文件是elf格式,32位ARM指令,小端模式 */  
  4. /*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/  
  5. OUTPUT_ARCH(arm)   
  6. /* 指定输出可执行文件的平台是ARM */  
  7. ENTRY(_start)   
  8. /* 指定输出可执行文件的起始代码段为 _start */  
  9. SECTIONS   
  10. {   
  11. /* 指定可执行image文件的全局入口点,通常这个地址都放在ROM(flash)0x0位置。  
  12. 必须使编译器知道这个地址,通常是修改此处来完成 */  
  13.     . = 0x00000000;   
  14.   
  15.     . = ALIGN(4); /* 代码以4字节对齐 */  
  16.     .text      :   
  17.     {   
  18.       cpu/arm920t/start.o   (.text) /* 代码的第一个代码部分 */  
  19.       *(.text)  /* 其他代码部分 */  
  20.     }   
  21.   
  22.     . = ALIGN(4);   /* rodata 以4字节对齐 */  
  23.     .rodata : { *(.rodata) }    /* 指定只读数据段 */  
  24.   
  25.     . = ALIGN(4);  /* .data 以4字节对齐 */  
  26.     .data : { *(.data) } /* 指定读,写数据段 */  
  27.   
  28.     . = ALIGN(4);   /* .got 以4字节对齐 */  
  29.     .got : { *(.got) } /* 指定got段,got段是uboot自定义的一个段,非标准段 */  
  30.   
  31.     . = .;   
  32.         /* 把__u_boot_cmd_start 赋值为当前位置,即起始位置 */  
  33.     __u_boot_cmd_start = .;   
  34.         /* 指定u_boot_cmd 段,uboot把所有的uboot命令放在该段 */  
  35.     .u_boot_cmd : { *(.u_boot_cmd) }   
  36.         /* 把__u_boot_cmd_end 赋值为当前位置,即结束位置 */  
  37.     __u_boot_cmd_end = .;   
  38.   
  39.     . = ALIGN(4);   
  40.     __bss_start = .; /* 把__bss_start 赋值为当前位置,即bss段的开始位置 */  
  41.     .bss : { *(.bss) } /* 指定bss段 */  
  42.     _end = .; /* 把_end 赋值为当前位置,即bss段的结束位置 */  
  43. }  

 

你可能感兴趣的:(image,cmd,Flash,平台,编译器,output)