主要符号说明

  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. 在Linux下编译带调试功能的Bochs

    在Linux下使用Bochs参考: http://wangcong.org/articles/bochs.html http://kinglaw05.blog.163.com/blog/static/ ...

  2. Linux的初始页表

    LOWMEM,是相对于HIGHMEM而言,其实就是内核态直接映射的物理内存空间的大小,一般为896MB. 这里只是粗略地估计了一下,取1GB. LOWMEM_PAGES代表了LOWMEM区域对应了多少 ...

  3. JS:面向对象(基础篇)

    面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念.long long ago,js是没有类的概念(ES6推出了class,但其原理还是基于原型),但是它是基于原 ...

  4. 牛客练习赛51 B 子串查询 https://ac.nowcoder.com/acm/contest/1083/B

    题目描述 给出一个长度为n的字符串s和q个查询.对于每一个查询,会输入一个字符串t,你需要判断这个字符串t是不是s的子串.子串的定义就是存在任意下标a<b<c<d<e,那么”s ...

  5. Flyway 学习时遇到的错误

    错误一: No plugin found for prefix 'flyway' in the current project and in the plugin groups  找不到Flyway插 ...

  6. 上线出现[x86_64, i386]

    echo "Target architectures: $ARCHS" APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}&quo ...

  7. 基于nginx结合openssl实现https

    [root@localhost ~]#systemctl stop firewalld[root@localhost ~]#setenforce 0[root@localhost ~]#iptable ...

  8. struts2验证器

    1. Struts2 的验证(note6,struts2-8) 1). 验证分为两种: > 声明式验证* >> 对哪个 Action 或 Model 的那个字段进行验证 >&g ...

  9. Dijkstra算法举例分析

    题目如下: 如上图,设A为源点,求A到其他各顶点(B.C.D.E.F)的最短路径.线上所标注为相邻线段之间的距离,即权值.(注:此图为随意所画,其相邻顶点间的距离与图中的目视长度不能一 一对等). 解 ...

  10. 关于canvas绘制图像模糊问题

    前段时间在做项目的裁剪并上传图像功能的时候,发现裁剪后展示的图像比较模糊,之后去百度上搜索了一下,看到有一个解决方案是设置canvas的宽高为css宽高的3倍,使用后感觉效果很好,当时就没管原理接着做 ...