uboot smdk6400.lds链接脚本分析

原创 2016年05月31日 00:26:24

开头部分
文件格式、输入架构、ENTRY() 用来指明整个程序的入口

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)

指定程序链接地址有两种方法:

  • Makefile中的ld命令的flags用-Ttext [地址]来指定
  • 在链接脚本SECTIONS开头用.=[地址]来指定

在既在Makefile中使用-Ttext [地址],同时在lds链接脚本写明.=[地址]时,编译器会以Makefile中的-Ttext [地址]指定的为准

SECTIONS部分

SECTIONS
{
    . = 0x00000000;

    . = ALIGN(4); //设定4字节对齐,防止传过来的地址未对齐

    .text      :  
    {
      /*代码段必须要注意文件的排列顺序,前面是uboot的BL1
      部分,必须包含初始化,跳转的.o文件*/
      arch/arm/cpu/arm1176/start.o  (.text)
      arch/arm/cpu/arm1176/s3c64xx/cpu_init.o   (.text)
      *(.text)
    }

    . = ALIGN(4);
    .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.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);
    .mmudata : { *(.mmudata) }

    . = ALIGN(4);
    __bss_start = .;
    .bss : { *(.bss) . = ALIGN(4); }
    _end = .;
}

其中.text .data .rodata .bss是编译工具自带的段,__u_boot_cmd_start .mmudata等是uboot自带的段,对于uboot的命令操作等功能有重要作用

版权声明:转载请注明出处, 谢谢

u-boot-2016.09 ld链接脚本分析

u-boot-2016.09 ld链接脚本分析
  • guyongqiangx
  • guyongqiangx
  • 2016年10月21日 22:05
  • 1006

Uboot之u-boot.lds的链接脚本

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start...
  • yuesichiu
  • yuesichiu
  • 2014年03月12日 10:11
  • 1985

uboot.lds 链接脚本语法规则

这是网上找到一篇关于链接脚本语法规则非常详细的介绍,保存到博客内,以便日后需要时查阅。以下是正文: 连接脚本的格式 ==================== 连接脚本是文...
  • h32dong809
  • h32dong809
  • 2015年10月01日 11:02
  • 1558

uboot链接脚本(为什么需要链接脚本)

uboot链接脚本(为什么需要链接脚本) 链接器的主要有两个作用,一是将若干输入文件(.o文件)根据一定规则合并为一个输出文件(例如ELF格式的可执行文件);一是将符号与地址绑定(当然加载器也要完成这...
  • TongxinV
  • TongxinV
  • 2017年03月13日 08:43
  • 582

uboot的编译和链接过程分析(一)

1.make xc2440_config 2.make all 从这两个步骤来理解,中间好多gcc 参数和shell脚本搞不清楚,先放一放,整个流程搞完了,我还有回头学习shell脚本. make ...
  • u010550992
  • u010550992
  • 2015年04月08日 23:14
  • 1134

uboot链接脚本分析

1. 引言 1.1 编写目的 编写此文档记录学习uboot的过程 1.2 定义 无   2. 概述 每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)...
  • b02330224
  • b02330224
  • 2012年04月26日 13:44
  • 803

uboot 下脚本的开发

http://blog.csdn.net/chocolate001/article/details/7202911 在Uboot下能否将很多命令放在一个脚本文件中,然后一起执行,类似于批处理...
  • zhanzheng520
  • zhanzheng520
  • 2014年01月06日 14:36
  • 728

uboot链接脚本

GNU编译器生成的目标文件缺省为elf格式,elf文件由若干段(section)组成,如不特殊指明,由C源程序生成的目标代码中包含如下段:.text(正文段)包含程序的指令代码;.data(数据段)包...
  • zzsfqiuyigui
  • zzsfqiuyigui
  • 2012年03月25日 23:50
  • 2141

链接脚本.lds文件分析

本篇文章是我特地转载的,以作为我博客中其他文章的基本知识的补充,同时也方便自己学习使用。本篇详细全面的介绍了连接脚本lds文件的介绍与使用,这个脚本文件很重要,在最后的链接阶段,决定了各个文件的位置安...
  • ssdsafsdsd
  • ssdsafsdsd
  • 2013年03月18日 15:23
  • 6803

Linux的链接脚本分析

init.h 对各种initcall()函数做了详细的定义。这些宏就把对应的初始化函数插入到指定的段中,就像放在链表中一样。等初始化函数运行时会把所有插入在此段中的初始化函数运行一遍。...
  • lenghuo2002
  • lenghuo2002
  • 2011年06月09日 15:25
  • 270
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:uboot smdk6400.lds链接脚本分析
举报原因:
原因补充:

(最多只允许输入30个字)