专题1:链接器脚本

来源:互联网 发布:与男闺蜜滚床单 知乎 编辑:程序博客网 时间:2024/05/18 03:46

首先看一个链接器脚本:

SECTIONS {                        // SECTION为链接器脚本的开头    . = 0x30008000;               // 程序运行的首地址    . = ALIGN(4);                 //4字节对齐    .text :                       //代码段    {    led.o (.text)                 //cpu上电后最先启动的程序led.o,排在代码段的最前面    *(.text)    }    . = ALIGN(4);                     .rodata : {*(.rodata)}    . = ALIGN(4);    .data : {*(.data)}            //数据段    . = ALIGN(4);    bss_start = .;                //程序中可能会用到这个地址    .bss : {*(.bss) *(COMMON)}    //bss段    bss_end = .;                  //程序中可能会用到这个地址}

1、链接器脚本的神奇作用
[实验演示]使用两种不同的链接器脚本去链接同一程序,产生的最终程序不一样,烧写到开发板中出现不一样的效果。(led1.lds 和 led2.lds的代码段首文件不一样
结论:链接器脚本控制程序产生的过程。

2、脚本的构成
1)基本构成:段
一个可执行程序通常是由代码段、数据段和bss段构成的。

2)起始连接地址

. = 0x30008000;

3)对齐
计算机默认4字节对齐,尽量把其实地址设为4的整数倍。为保证按4字节存储,各个段的前面跟上一句代码进行4字节进行调整。

. = ALIGN(4);

4)变量

bss_start = .;  //. 代表当前位置

5)代码段首文件

.text :                           //代码段    {    led.o (.text)                 //cpu上电后最先运行的程序led.o    *(.text)                      //* 代表所有的    }

注意:
1、SECTION { }中的代码前要按【TAB】键。
2、改变文件夹的权限命令

chmod -R 777 ./                   //chmod 777 -R ./  

3、返回上次的目录的命令

cd -

如果是复制A文件夹的内容复制到B文件夹,是去更改B文件夹的权限。

0 0
原创粉丝点击