u-boot.lds分析
来源:互联网 发布:应用大数据的例子 编辑:程序博客网 时间:2024/05/09 07:14
u-boot.lds代码如下:
简要说明该文件作用,该文件是链接脚本文件,在编译uboot时指定uboot可执行镜像文件链接方式,指定个段的装载地址与执行地址
/*
/*指定输出文件格式elf,32位mips指令,大端*/
*/
OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradbigmips")
OUTPUT_ARCH(mips)/*指定输出文件的平台体系mips*/
ENTRY(_start)/*可执行镜像文件的起始段名_start,也称之为入口点*/
SECTIONS /*连接器脚本命令*/
{
/*这个.特殊 符号是位置计数器*/
. = ALIGN(4);/*4字节对齐*/
.text : /*输出代码段*/
{
*(.text)/*表示所有的输入代码段*/
}
. = ALIGN(4);
.rodata : { *(.rodata) }/*只读数据段*/
. = ALIGN(4);
.data : { *(.data) }/*可读写数据段*/
. = ALIGN(4);
.sdata : { *(.sdata) }/*未初始化可读写数据段*/
_gp = ALIGN(16);
__got_start = .;
.got : { *(.got) }/*指定got段*/
__got_end = .;
.sdata : { *(.sdata) }
. = .;
__u_boot_cmd_start = .;
/*u-boot命令段*/
.u_boot_cmd : { *(.u_boot_cmd) }
uboot_end_data = .;
num_got_entries = (__got_end - __got_start) >> 2;
. = ALIGN(4);
.sbss : { *(.sbss) }/*未初始化的bss*/
.bss : { *(.bss) } /*BSS段*/
uboot_end = .;
}
当我们编译u-boot时会看到如下内容:
这个-DTEXT_BASE宏指定代码段的起始基地址为0x9fc00000
当u-boot编译成功后我们可以在u-boot.map
我们看到_start的起始地址就是虚地址0x9fc00000
当设备断电重启首先执行的就是_start在0x9fc00000地址
那么TEXT_BASE在那里指定,我们在config.mk中发现有如下代码:
# ROM version
TEXT_BASE = 0x9fc00000
# RAM version
#TEXT_BASE = 0x80100000
编译时用TEXT_BASE赋给.text,这样就指定了执行代码段的起始基地址。
0 0
- 分析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
- SmartGit的安装和使用
- 压缩游戏包大小的几个方法
- java.lang.UnsatisfiedLinkError: org.jblas.NativeBlas.dposv(CII[DII[DII)I
- 使用 Redis 实现分布式系统轻量级协调技术
- SDWebImage基础应用
- u-boot.lds分析
- 一张表看清中国软件公司2014年谁家营收最多?
- sendRedirect和forward原理及区别总结
- Matlab图像处理小结
- 幸福列车(多个优先队列)
- JSP验证码的实现
- 公云怎么用?
- linux下ctrl 常用组合键
- PowerDesigner使用