[学习日志][2-2-4][链接器脚本]

链接器脚本

一个可执行程序通常由:代码段、数据段、bss段构成。在用于链接这个程序的链接器脚本中,反应的是这几个段的信息。

创建链接器脚本

1.创建链接器脚本

vim led.lds

2.设置起始链接地址

. = 0x30008000

3.对其设置

. = ALIGN(4);

arm处理器在访问数据的时候是以4字节对齐的方式访问的,所以在存储数据时以4字节对齐可以提高访问效率

4.使用变量

start_adr = .;

使用变量保存下来的地址可以在程序中使用

5.设置代码段的首文件

led.o(.text)

通过设置首文件,保证一个文件在程序开始时被执行

SECTIONS{
    . = 0x30008000;   //"."表示当前地址,代码段之前的地址是起始地址,表示把起始地址设置成0x30008000

    . = ALIGN(4);   //"."表示当前地址,ALIGN(4)表示以4字节对齐,如果当前地址不能被4整除,则下一个地址加上一个偏移使之能被4整除
    .text : //代码段
    {  
        main.o(.text)   //表示main.o在其他文件之前
        *(.text)   //“*”表示所有文件,".text"表示代码段
    }

    . = ALIGN(4);
    .data : //数据段
    {  
        *(.data)   //“*”表示所有文件,".data”表示数据段
    }

    . = ALIGN(4);
    bss_start = .;   //设置变量bss_start等于当前地址
    .bss : //bss段
    {  
        *(.bss)   //“*”表示所有文件,".bss"表示bss段
    }
    bss_end = .;   //设置变量bss_end等于当前地址
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值