链接器ld和链接脚本lds
来源:互联网 发布:唯品会 淘宝 编辑:程序博客网 时间:2024/04/28 16:49
在链接脚本中使用注释,可以用“/*...*/”。
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
endif
vivi: $(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) }
}
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的内存分配,这样才能作出合理的安排
- 链接器ld和链接脚本lds
- GNU ld链接脚本lds简单教程
- 链接器脚本lds
- 链接器脚本 .lds
- arm-linux-ld命令 ld链接脚本(不错,推荐可以学习一些lds链接脚本文件)
- lds 链接脚本
- 链接脚本文件 lds
- .lds链接脚本基础
- Linux链接脚本.lds
- LDS 链接脚本语法分析
- lscript.ld 链接器脚本
- ld编译选项以及lds链接文件格式
- ld与链接脚本
- ld,链接脚本
- ld.info链接脚本
- 链接脚本.lds文件分析
- Linux链接脚本学习--lds
- Linux链接脚本学习--lds
- protel 走线 改变方向
- 黑马程序员——双线程Tcp通信
- Maxiee的Vim入门日记(6)——用Vim看aMule代码2
- lightoj 1038 - Race to 1 Again
- javaweb中获取文件路径的方法
- 链接器ld和链接脚本lds
- 动态加载js文件
- 阶乘
- hdu 1166 敌兵布阵 (树状数组)
- QStringList类常用方法
- Linux2.6内核--中断下半部实现方法 工作队列
- 伊春
- hdu 1242 BFS
- android 自适应屏幕