链接器脚本

链接器脚本构成:段、起始链接地址、对齐、变量、代码段首文件 
一个可执行程序通常由代码段,数据段,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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值