主要符号说明

  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. json 报错415 400

    JS操作JSON总结   $(function(){ $.ajax({ method: 'post', url: '/starMOOC/forum/getSectionList', dataType: ...

  2. JUC源码分析-集合篇(三)ConcurrentLinkedQueue

    JUC源码分析-集合篇(三)ConcurrentLinkedQueue 在并发编程中,有时候需要使用线程安全的队列.如果要实现一个线程安全的队列有两种方式:一种是使用阻塞算法,另一种是使用非阻塞算法. ...

  3. Zabbix监控搭建

    目录 Zabbix概述        zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 ( 基于 GPL V2 )zabbix由 2 部分构成,zabbix ...

  4. [已解决]报错:execjs._exceptions.ProgramError: ReferenceError: window is not defined

    问题: execjs._exceptions.ProgramError: ReferenceError: window is not defined 解决: 定义一个就行 var window = { ...

  5. 装机时键盘选择失误?教你修改kali Linux键盘到美式。

    在Linux装机选择键盘的时候,由于学的是英式英语而选择了英式键盘,结果吃了大亏.英式键盘和我们平时使用的美式键盘的键位是不一样的! 这是我们平时使用的美式键盘: 这是英式键盘: 修改的方式是: 点击 ...

  6. 多个串的最长公共子串 SPOJ - LCS2 后缀自动机

    题意: 求多个串的最长公共子串 这里用的是O(n)的后缀自动机写法 我后缀数组的专题有nlog(n)写法的 题解: 对于其中的一个串建立后缀自动机 然后对于后缀自动机上面的每一个节点求出每一个节点最长 ...

  7. 自动化监控系统(二)连接数据库,创建app,添加model,同步数据库

    数据库我使用:mysql5.7 程序连接数据库的模块:pymysql 一.创建数据库: dbname:automatedmonitor 二.使用pip安装pymysql,这里我直接在pycharm上安 ...

  8. whatis - 在 whatis 数据库里查找完整的单词

    总览 (SYNOPSIS) whatis keyword ... 描述 (DESCRIPTION) whatis 命令在一些特定的包含系统命令的简短描述的数据库文件里查找关键字, 然后把结果送到标准输 ...

  9. 从零开始搭建系统2.1——Nexus安装及配置

    在安装配置Nexus时,请先确定您已经配置好jdk 1.创建目录 2.下载安装包 [root@localhost usr]# cd nexus 下载地址:https://www.sonatype.co ...

  10. 使用dd生成文件

    使用dd命令快速生成大文件或者小文件的方法     转载自:http://blog.csdn.net/cywosp/article/details/9674757     在程序的测试中有些场景需要大 ...