您的位置:首页 > 运维架构 > Linux

Linux 点滴之init.s片段解析(个人点滴记录)

2014-08-13 10:44 316 查看
第一部分:fdl1.lds

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")

#指定输出可执行文件是elf格式,32位ARM指令,小端

OUTPUT_ARCH(arm) #指定输出可执行文件的平台为ARM

ENTRY(_start) #指定输出可执行文件的起始代码段为_start.

SECTIONS

{

. = 0x50000000; #从地址0x50000000开始执行

. = ALIGN(4); #代码段4字节对齐

.text : #代码段

{

init.o (.text) #第一个代码段部分

*(.text) #其他代码段部分

}

. = ALIGN(4);

.rodata : { *(.rodata) } #指定只读数据段

. = ALIGN(4);

.data : { *(.data) } #指定读写数据段

. = ALIGN(4);

__bss0_start = .;

.bss0 :

{

umctl.o (.bss)

dram_cfg.o (.bss)

drv_usb.o (.bss)

virtual_com.o
(.bss)

adi.o (.bss)

}

__bss0_end = .;

. = 0x81000000;

. = ALIGN(4);

__bss1_start = .; #把__bss_start赋值为当前位置,即bss段的开始位置

.bss1 :

{

*(.bss) #指定bss段

}

__bss1_end = .; #把_end赋值为当前位置,即bss段的结束位置

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: