GNU LD用法
来源:互联网 发布:好友定位软件下载 编辑:程序博客网 时间:2024/05/16 12:49
1、什么是ld?它有什么作用? SECTIONS表示段。第一行表示当前地址为0x33f00000,就是VMA,同时也是text段的起始地址。第二行用了通配符*表示所有字符,这里的意思就是说指定的每个目标文件的text section的内容都放到同一个.text中。第三行表示指定的每个目标文件的data section的内容都放到同一个.data中,而且要四字节边界对齐。第四行表示指定的每个目标文件的bss section的内容都放到同一个.bss中,所有的普通符号都放到COMMON中,而且要四字节边界对齐。 这算是最为简单的ld scripts,不过也够用了。如果不考虑对齐等因素,则可以直接在命令行中指定-Ttext 0x33f00000,就可以完成了。当然,对Linux kernel等,ld scripts要处理复杂的内存分配等操作,相应的要复杂一些,读那些的方法就是查阅using ld手册,同时还要研究MCU的内存分配,这样才能作出合理的安排LINKFLAGS = -Tarch/vivi.lds -Bstatic
SECTIONS {
. = TEXTADDR;
.text : { *(.text) }
.data ALIGN(4) : { *(.data) }
.bss ALIGN(4) : { *(.bss) *(COMMON) }
}LDSCRIPT = arch/vivi.lds.in
ifeq ($(CONFIG_ARCH_S3C2410),y)
MACHINE = s3c2410
ifeq ($(CONFIG_S3C2410_NAND_BOOT),y)
TEXTADDR = 0x33f00000
else
TEXTADDR = 0x00000000
endif
endifvivi: $(HEAD) arch/vivi.lds
arch/vivi.lds: $(LDSCRIPT)
@sed s/TEXTADDR/$(TEXTADDR)/ $(LDSCRIPT) >$@SECTIONS {
. = 0x33f00000;
.text : { *(.text) }
.data ALIGN(4) : { *(.data) }
.bss ALIGN(4) : { *(.bss) *(COMMON) }
}
- GNU LD基本用法
- GNU LD用法
- GNU LD
- GNU ld
- GNU ld 程序连接
- gnu ld script
- GNU LD脚本解析
- GNU ld连接器说明
- GNU-ld 脚本文件
- GNU ld 详解
- GNU LD脚本解析
- GNU连接器ld
- ld - The GNU linker
- GNU 链接器 ld
- 关于GNU ld和ld脚本 转
- GNU连接器ld(2.14版本)
- Using LD, the gnu linker
- GNU-ld链接脚本浅析
- Jetty.README.txt中英文
- 我的java学习之路
- CStatic 的用法
- CStatic 的用法
- C++文件操作详解(ifstream、ofstream、fstream)
- GNU LD用法
- 我的软件测试知识
- php中cookie和session的分析
- 结构体和类的区别
- 读ReactOS的准备工作
- 控件的Group属性
- 添加slave账户
- 如何学好C++语言
- Linux的压缩命令