liteos连接器脚本(一)
文章目录
一,什么是连接器脚本
连接器脚本决定了程序的布局编译出来的静态布局。系统运行起来之后很大程度上是由这部分布局决定的。liteos的比较简单,linux下的连接器脚本,因为在某些场景下内核是压缩的,所以可能会牵扯到多个连接器脚本的配合,最终决定解压后在内存中的布局。这个我们这里先关注,等到讲解linux的时候,我们再具体讲解。这里主要还是讲解liteos。
那么什么是连接器脚本呢,连接器脚本是辅助编译器连接器的一个文档,我们的程序是由许多c或者汇编文件编译出来的.o后缀的文件,这些文件是独立的,那么就需要连接器将这些文件最终结合成最后我们需要一个独立的程序,这里先不考虑elf32等之类的程序特定的头,或者直接是bin文件这样的。这个都属于后面了,我们统称为可执行文件。连接器的使用环节如下图所示
如上图,源程序通常是我们写好的程序C或者汇编S后缀的文件。通过编译工具链里面的汇编器统一编译成S后缀的文件,然后再通过编译器生成o后缀的二进制文件(这个时候已经是机器代码了),但是这些o文件是独立的,我们的程序最终的输出是一个,所以这个时候需要连接器脚本作为参数辅助,决定我们的程序代码段,数据段,bss段,以及程序里面自定义段的布局先后顺序。最终生成的程序就是将这些o文件按照布局生成最终的可执行文件。
二,形象的比喻
为了让大家对