链接器脚本

来源:互联网 发布:折弯机编程视频 编辑:程序博客网 时间:2024/06/05 17:55
链接器脚本构成:段、起始链接地址、对齐、变量、代码段首文件 
一个可执行程序通常由代码段,数据段,bss段构成。 
其中数据段存放的是初始化后的前期变量;bss段存放的是没有初始化的前期变量 

一个链接器脚本led.lds例子:

OUTPUT_ARCH(arm)                /*指定输出文件的平台体系是ARM*/  ENTRY(_start)                             /*指定可执行映像文件的起始段的段名是_start*/  SECTIONS {    . = 0x30008000;                  /*设置起始链接地址,改变这个值,会使编译中得到的汇编代码中首地址的值改变*/    . = ALIGN(4);                       /*对齐*/    .text :          {    start.o (.text)                        /*代码段首文件*/    *(.text)                                  /*代表所有文件的代码段*/    }    . = ALIGN(4);    .data :    {    *(.data)                               /*代表所有文件的数据段*/    }    . = ALIGN(4);    bss_start = .;                     /*变量,表示将当前地址赋值给bss_start*/    .bss :     {    *(.bss)                                /*代表所有文件的bss段*/    }    bss_end = .;                     /*变量,表示将当前地址赋值给bss_end*/}

数据对齐:0,4,8这些能整除4的地址是数据之间对齐的地址。存储数据时尽量做到数据之间的对齐,这有利于arm处理器的效率提高,这和arm处理器访问数据的方式有关。

设置代码段首文件:规定了程序运行时首先运行的代码


0 0
原创粉丝点击