什么是链接器脚本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是链接器脚本?相关的知识,希望对你有一定的参考价值。

链接器脚本

    链接定位是系统级软件开发过程中必不可少的一部分,嵌入式软件开发均属于系统级开发,绝大部分嵌入式软件都涉及到链接定位脚本文件;链接定位脚本使得我们的目标代码组织更加灵活。

脚本的构成:

1.      段

一个可执行程序通常包括:代码段:存放代码的地方

                        数据段:存放初始化之后的全局变量

                        Bss段:存放未初始化的全局变量

同样,在用于链接这个程序的链接器脚本中,就会反应这几个段的信息。

2.      起始链接地址

3.      对齐

4.      变量

5.      代码段首文件

 

例:

SECTIONS{

 (table). = 0x30000000; //起始地址为30000000

 

//代码段

         . = ALIGN(4);   //对齐方式为4字节对齐

         .text :

         {

         Start.o(.text)    //设置的代码段首文件(CPU初始化)

         *(.text)         //*代表全部文件

         }

 

//数据段

         . = ALIGN(4);

         .data :

         {

*(.data)

}

 

//Bss段

. = ALIGN(4);

Bss_start = . ;    //变量

.bss :

{

*(.bss)

}

Bss_end = . ;

}

以上是关于什么是链接器脚本?的主要内容,如果未能解决你的问题,请参考以下文章

为啥链接器无法识别我的链接器脚本中定义的入口点

链接器脚本:我可以在多个部分中指定 (*COMMON) 吗?

编写链接器脚本

链接器中——链接脚本

为啥 STM32CubeIDE 有 2 个生成的链接器脚本?

链接脚本