[国嵌笔记][018][链接器脚本]

发布者:Xiangsi最新更新时间:2025-02-25 来源: cnblogs关键字:链接器脚本  代码段  数据段 手机看文章 扫描二维码
随时随地手机看文章

链接器脚本

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

 

创建链接器脚本

1.创建链接器脚本  

vim led.lds

2.设置起始链接地址  

. = 0x30008000

3.对其设置  

. = ALIGN(4);

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

4.使用变量  

start_adr = .;

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

5.设置代码段的首文件  

led.o(.text)

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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等于当前地址
}


关键字:链接器脚本  代码段  数据段 引用地址:[国嵌笔记][018][链接器脚本]

上一篇:[国嵌笔记][019][Eclipse集成开发环境]
下一篇:[国嵌笔记][017][Makefile工程管理]

推荐阅读最新更新时间:2026-03-25 11:10

[国嵌笔记][018][链接脚本]
链接器脚本 一个可执行程序通常由:代码段、数据段、bss段构成。在用于链接这个程序的链接器脚本中,反应的是这几个段的信息。 创建链接器脚本 1.创建链接器脚本 vim led.lds 2.设置起始链接地址 . = 0x30008000 3.对其设置 . = ALIGN(4); arm处理器在访问数据的时候是以4字节对齐的方式访问的,所以在存储数据时以4字节对齐可以提高访问效率 4.使用变量 start_adr = .; 使用变量保存下来的地址可以在程序中使用 5.设置代码段的首文件 led.o(.text) 通过设置首文件,保证一个文件在程序开始时被执行 1 2 3 4 5 6 7 8 9 10 11 12 13
[单片机]
ARM代码域和的概念
一般的可执行程序都包括代码段、数据段。也可以简单的看作由两部分组成:RO段和RW段。RO段一般包括代码段和一些常量,在运行的时候是只读的。而RW段包括一些全局变量和静态变量,在运行的时候是可以改变的(读写)。如果有部分全局变量被初始化为零,则RW段里还包括了ZI段。 RO: Read On ly 代码段 RW: Read Write 已初始化的全局变量 ZI: Zero Init 未初始化的全局变量 因为RO段是只读的,在运行的时候不可以改变,所以,在运行的时候,RO段可以驻留在Flash里(当然也可以在SDRAM或者SRAM里了)。而RW段是可以读写的,所以,在运行的时候必须被装载到
[单片机]
ARM<font color='red'>代码</font>域和<font color='red'>段</font>的概念
ARM常用的伪指令
1、 AREA AREA 伪指令用于定义一个代码段或数据段。 语法格式: AREA 段名 属性 1 ,属性 2 ,…… 其中,段名若以数字开头,则该段名需用 “ | ” 括起来,如 |1_test| 。 属性字段表示该代码段(或数据段)的相关属性,多个属性用逗号分隔。常用的属性如下: — CODE 属性:用于定义代码段,默认为 READONLY 。 — DATA 属性:用于定义数据段,默认为 READWRITE 。 — READONLY 属性:指定本段为只读,代码段默认为 READONLY 。 — READWRITE 属性:指定本段为可读可写,数据段的默认属性为 READWRITE 。 — ALI
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved