分析u-boot.lds
来源:互联网 发布:最强数据恢复软件 编辑:程序博客网 时间:2024/05/18 03:57
u-boot.lds脚本分析
1.
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
原型OUTPUT_FORMAT(DEFAULT,BIG,LITTLE)
OUTPUT_FORMAT的目的是指定输出目标文件的格式,三个选项分别指定在缺省、大段、小端情况下的输出可执行文件格式。当命令行中带有-EB则使用第二个格式(BIG),当命令行中带有-EL则使用第三个格式(LITTLE),如果这两个都不带则使用第一个格式(DEFAULT)。此处三种都被设置为elf32-littlearm,意思是可执行文件输出格式是elf32,小端和ARM体系结构
2.
OUTPUT_ARCH(arm)
指定输出可执行文件的硬件平台是ARM
原型: OUTPUT_ARCH(BFDARCH)
设置输出文件的体系结构,BFDARCH为被BFD库使用的名字之一(arm便是其中之一)
3.
ENTRY(_start)
指定启动时的函数入口地址,_start在每个CPU目录下的start.S中定义,真正的启动运行地址段在编译时在/u-boot-1.1.6/board/smdk2410/config.mk中由TEXT_BASE宏定义。
4.
SECTIONS
{
. = 0x00000000;
. = ALIGN(4);
.text :
{
cpu/arm920t/start.o (.text)
board/smdk2440/boot_init.o (.text)
*(.text)
}
. = ALIGN(4);
.rodata : { *(.rodata) }
. = ALIGN(4);
.data : { *(.data) }
. = ALIGN(4);
.got : { *(.got) }
. = .;
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
_end = .;
}
SECTIONS其实可以理解为一个内存布局的描述。首先我们来看一个特殊的标示符“.”,它是一个定位符,例如. = 0x00000000表示当前位置从0x0开始。位置标识符可以自动向上增长随着后边段的增加,例如在(.text)段后面“.”的值为0x0+size(.text)。总是“.”就是指定后面输出段的位置,如果没有指定,则继续紧接着往后面放。.= ALIGN(4) 是指四字节对齐。.text:{(*.text)},.data:{(*.data)}等都是固定死的格式,我们可以把我们的需要的文件提取出来,例如
.text :
{
cpu/arm920t/start.o (.text)
board/smdk2440/boot_init.o (.text)
*(.text)
}
这样可以将start.o放在.text段的首地址,然后接着存放boot_init.o
- 分析u-boot.lds
- u-boot.lds分析
- u-boot.lds分析
- u-boot.lds分析
- u-boot.lds分析
- u-boot.lds 分析
- u-boot.lds 分析 .
- u-boot.lds分析
- u-boot.lds分析
- u-boot分析--u-boot.lds
- u-boot.lds的分析
- u-boot.lds 文件分析
- u-boot.lds 文件分析 .
- u-boot-nand.lds分析
- uboot分析之u-boot.lds
- uboot分析之u-boot.lds
- U-Boot的LDS文件分析
- uboot分析之u-boot.lds
- ASA5510映射FTP端口
- 超链接
- 散列表的基本概念及其运算
- 9 个指导开发者快速编码/学习的网站推荐
- CentOS 5.8 asterisk-1.8.10.1 安装之二:安装freepbx
- 分析u-boot.lds
- Silverlight Tookit控件集
- django + apache + windows server 2003 + sql server 2005 + mod_wsgi 配置
- ABI---应用程序二进制接口
- 数字图像基础,分辨率
- Java连接数据库代码
- delphi 接口
- 电脑双网卡同时联网
- Linux命令行技巧