主要符号说明

  1. OUTPUT_FORMAT(bfdname)

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

  1. OUTPUT_ARCH(bfdname)

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

  1. ENTRY(symbol)

指定可执行文件的入口段

段定义说明

1.  段定义格式

SECTIONS { ...

段名 : {

内容

}

...

}

5.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 段的结束位置

}

lds 文件说明的更多相关文章

  1. U-boot.lds文件分析

    OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") ...

  2. u-boot.lds文件简介

    可执行文件由许多链接在一起的对象文件组成.对象文件有许多节,如文本.数据.init 数据.bss等.这些对象文件都是由一个称为 链接器脚本(*lds)的文件链接并装入的.这个链接器脚本的功能是将输入对 ...

  3. ARM 链接配置.lds文件学习<转>

    本文由Jacky原创,来自http://blog.chinaunix.net/u1/58780/showart.php?id=462971 对于.lds文件,它定义了整个程序编译之后的连接过程,决定了 ...

  4. uboot的lds文件分析

    OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") ...

  5. JZ2440学习笔记之链接文件lds

    如果在Linux环境下用arm-linux-gcc来编译arm程序,需要编写链接文件lds: 1. 运行地址=链接地址,表示代码在SDRAM中执行的地址,如果程序中有对某部分代码执行过搬运,需要在ld ...

  6. [转]Linux下的lds链接脚本详解

    转载自:http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.shtml     一. 概论 每一个链接过程都由链接脚本(lin ...

  7. Linux内核Makefile文件(翻译自内核手册)

    --译自Linux3.9.5 Kernel Makefiles(内核目录documention/kbuild/makefiles.txt) kbuild(kernel build) 内核编译器 Thi ...

  8. uboot.lds (一)

    lds文件与scatter文件相似都是决定一个可执行程序的各个段的存储位置,以及入口地址,这也是链接定位的作用.U-boot的lds文件说明如下:       SECTIONS{        ... ...

  9. 基于linux2.6.38.8内核zImage文件的自解压详解

    转载:http://blog.csdn.net/wavemcu/article/details/7270439 ******************************************** ...

随机推荐

  1. Android逆向之smali语法宝典

    0x01.前言 Android采用的是java语言进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali.我们反编译得到的代码,j ...

  2. FreeBSD_11-系统管理——{Part_a-bhyve}

    ;; 创建 vm: #!/usr/bin/env zsh bridgeIF=bridge0 laggIF=lagg0 tapIF=tap0 phyIF_0=re0 phyIF_1=em0 isoPat ...

  3. Spring MVC源码分析(三):SpringMVC的HandlerMapping和HandlerAdapter的体系结构设计与实现

    概述在我的上一篇文章:Spring源码分析(三):DispatcherServlet的设计与实现中提到,DispatcherServlet在接收到客户端请求时,会遍历DispatcherServlet ...

  4. python面试题之多线程好吗?列举一些让Python代码以并行方式运行的方法

    答案 Python并不支持真正意义上的多线程.Python中提供了多线程包,但是如果你想通过多线程提高代码的速度,使用多线程包并不是个好主意.Python中有一个被称为Global Interpret ...

  5. js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解

    1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(string) 参数 描述 string 必需.要被转义或 ...

  6. 22-1-sort

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 对象拷贝extend

    如果想要把某个对象拷贝(合并)给另外一个对象使用,此时可以使用$.extend()方法 语法: $.extend([deep],target,object1,[objectN]); 1.deep:如果 ...

  8. sqlserver 如何瞬间执行上万条数据

    核心的内容是:使用自定义表类型 第一步:创建存储过程P_T1DeclareInfo_Upload_new 参数: T1DeclareInfo_UploadPNSN_Param  类型 T1Declar ...

  9. jQuery方法-queue()

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="utf-8&quo ...

  10. php array remove empty values

    print_r(array_filter($linksArray)); 參考 Remove empty array elements Remove Empty Array Elements In PH ...