链接器脚本(嵌入式学习记录)

链接器脚本

1、 。一个可执行程序通常是由:代码段,数据段,bss段(存放没有初始化的全局变量)构成的。同样,在用于链接这个程序的链接器脚本中,就会反应出这几个段的信息。

2、 创建链接器脚本---段信息

SECTIONS{

        .text :

        {

        *(.text)

        } 

 

.data :

        {

        *(.data)

       }

 

.bss :

        {

        *(.bss)

         }

}

3、设置起始链接地址

SECTIONS{

    . = 0X0;  //.表示起始链接地址

        .text :

        {

        *(.text)

        }

 

.data :

        {

        *(.data)

       }

 

.bss :

        {

        *(.bss)

        }

}

4、对齐设置

4字节对齐,首地址能被4整除,提高效率

SECTIONS{

    . =0X0;  //.表示起始链接地址

    . =ALIGN(4); //调整代码段4字节对齐

        .text :

        {

        *(.text)

}

. = ALIGN(4); //调整数据段4字节对齐

.data :

        {

        *(.data)

}

. = ALIGN(4); //调整bss段4字节对齐

.bss :

        {

        *(.bss)

}

}

5、使用变量

  SECTIONS{

    . =0X0;  //.表示起始链接地址

    . = ALIGN(4); //调整代码段4字节对齐

        .text :

        {

        *(.text)

}

. = ALIGN(4); //调整数据段4字节对齐

.data :

        {

        *(.data)

}

. = ALIGN(4); //调整bss段4字节对齐

bss_start = . ; // . 表示当前地址

.bss :

        {

        *(.bss)

}

bss_end = . ;

}

6、设置代码段首文件

  SECTIONS{

    . =0X0;  //.表示起始链接地址

    . = ALIGN(4); //调整代码段4字节对齐

        .text :

        {

        start.o(.text)

        *(.text)

}

. = ALIGN(4); //调整数据段4字节对齐

.data :

        {

        *(.data)

}

. = ALIGN(4); //调整bss段4字节对齐

bss_start = . ;  // . 表示当前地址

.bss :

        {

        *(.bss)

}

bss_end = . ;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值