IMX6ULL链接脚本注释记录 2020-11-21

目录

1,原代码注释

2,参考资料

2.1正点原子视频

2.2 ld链接脚本语法简介

2.3 Linux下的lds链接脚本详解


1,原代码注释

SECTIONS{
	. = 0X87800000; /*“.”在链接脚本里面叫做定位计数器,要求代码链接到以 0X87800000为起始地址的地方*/
    /*  “.text”是段名,后面的冒号是语法要求,冒号后面的大括号里面可以填上要链接到“.text”这个段里面的所有文件,
    *   “*(.text)”中的“*”是通配符,表示所有输入文件的.text段都放到“.text”中。 
    */
	.text : 
	{
		start.o  /*start.o 要被链接到最开始的地方,因为 start.o 里面包含这第一个要执行的命令。*/
		main.o  /* main.o这个文件,其实可以不用写出来,可以由编译器自行决定链接位置*/
		*(.text)
	}
	.rodata ALIGN(4) : {*(.rodata*)}   /*ALIGN(4)表示 4 字节对齐。也就是说段“.data”的起始地址要能被 4 整除*/  
	.data ALIGN(4)   : { *(.data) }    
	__bss_start = .;    /*?“__bss_start”和“__bss_end”是符号,对这两个符号进行赋值,其值为定位符“.”,*/
	.bss ALIGN(4)  : { *(.bss)  *(COMMON) }     /*“.bss”数据就是那些定义了但是没有被初始化的变量。*/
	__bss_end = .;
}

2,参考资料

2.1正点原子视频

https://www.bilibili.com/video/BV1yE411h7uQ?p=16

 

2.2 ld链接脚本语法简介

主要包含命令语句和赋值语句。

一、语法

1、分号,作为分隔符号  

2、注释 表达式和运算符  和c一样,其中注释只有/**/

3、字符引用  段名文件名等有特殊字符,使用双引号

4、命令语句

a、ENTRY(symble)  指定入口地址,入口地址就是进程执行的第一条用户空间的指令再进程地址空间中的地址,被指定再ELF文件头的ELF32_Ehdr的e_entry成员中。

ld有多种指定程序入口方式:(优先级逐渐降低)

ld -e

entry()

_start符号

.text

0

 

b、STARTUP(filename)  将文件filename 作为链接过程中的第一个输入文件。

c、SEATCH_DIR 将路径path加入到ld链接器的库查找目录。 ld会根据指定的目录去查找相应的库。

d、INPUT(file,file,...)  将指定文件作为链接过程中的输入文件

e、INCLUDE filename 将指定文件包含进本链接脚本。

f、PROVIDE(symbol) 在链接脚本中定义某个符号。该符号再程序中可以被引用,起始前文提到的特殊符号都是由系统默认的链接脚本通过PROVIDE 命令定义在脚本中的

https://www.cnblogs.com/tureno/articles/3741291.html

2.3 Linux下的lds链接脚本详解

https://blog.csdn.net/sunjing_/article/details/52221959

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值