Chinaunix首页 | 论坛 | 博客
  • 博客访问: 156001
  • 博文数量: 60
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 458
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-04 10:01
文章分类

全部博文(60)

文章存档

2016年(3)

2014年(57)

我的朋友

分类: LINUX

2014-09-28 15:06:09

版本:boardàar7420àap93

 

首先弄清楚这些表示的意思:(linux链接脚本中一些基本的数据定义)

.             è当前值

.text        è代码段

.rodata    è只读数据段

.data       è全局数据段

.sdata      è小规模数据段

.got         è全局偏移表(global offset table) 自定义段

.sbss        è存放小规模的通用目标

.bss         è存放程序中未初始化的全局变量,在初始化时一般清零(属于静态内存分配)

                     (Block Started by Symbol segment)

 

源码如下:(路径:/mnt/disk/ap93/boot/u-boot/board/ar7420/ap93/u-boot.lds)

 

OUTPUT_FORMAT(“elf32-tradbigmips”,”elf32-tradbigmips”,”elf32-tradbigmips”)

/*指定输出可执行文件是elf格式,32mips指令,大端*/

OUTPUT_ARCH(mips)

/*指定输出文件的平台体系是mips*/

ENTRY(_start)

/*指定可执行映像文件的起始段的段名是_start       ,系统上电后在start.S文件中从_start标号开始执行*/  

SECTIONS

{

/*指定可执行image文件的全局入口点,通常这个地址都放在ROM(flash)0x0位置。

必须使编译器知道这个地址,通常都是修改此处来完成*/

       . = 0X00000000;    /*起始地址为0X00000000*/

      

       . = ALIGN(4);       /*字对齐,即就是4字节对齐*/

       .text :                    /*代码段 (代表一个输出节,具体查看lds文件规则.txt)*/

       {

              *(.text)           /*所有的输入文件,其中“*”表示通配符*/

}

 

. = ALIGN(4);      

.rodata    : {*(.rodata)}         /*只读数据段,所有的只读数据段都会放在这个位置*/

 

. = ALIGN(4);

.data       : {*(.data)}            /*可读写数据段,所有的可读写数据段都放在这里*/

 

. = ALIGN(4);                    

.sdata      : {*(.sdata)}          /*用来保存小规模数据的数据段*/

 

_gp = ALIGN(16);

 

__got_start = .;                    //自定义段

.got  : {*(.got)}

__got_end = .;

 

.sdata      : {*(.sdata)}          /*用来保存小规模数据的数据段*/

 

__u_boot_cmd_start = .;

.u_boot_cmd :      {*(.u_boot_cmd)}                /*存放所有的uboot命令*/

__u_boot_cmd_end = .;

 

Uboot_end_data = .;

Num_got_entries = (__got_end - __got_start) >> 2;

 

. = ALIGN(4);

.sbss        :      {*(.sbss)}                     //存放小规模通用目标

.bss         :      {*(.bss)}                      //存放程序中未初始化的全局变量

Uboot_end = .;

}

这段代码的作用è起到了代码和数据怎么规划怎么摆放的作用(个人理解)

 

附图:(来自网上)


(可能根据开发板的不同有点不同吧,但最基本还是一样。基本上都这样吧。)

阅读(978) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~