当前位置: 首页 > news >正文

GNU链接器(LD):REGION_ALIAS函数(为存储区域取别名)用法及实例解析

0 参考资料

GNU-LD-v2.30-中文手册.pdf
GNU linker.pdf

1 前言

一个完整的编译工具链应该包含以下4个部分:
(1)编译器
(2)汇编器
(3)链接器
(4)lib库
在GNU工具链中,对应的是:
(1)编译器:GCC(GNU Compiler Collection,GNU编译器套件)
(2)汇编器:GAS(GNU Assembler,GNU汇编器)
(3)链接器:LD(GNU Linker,GNU链接器)
(4)lib库:glibc(GNU C Library,GNU C 库)
本文介绍GNU链接器(LD)链接器脚本中REGION_ALIAS函数(为存储区域取别名)用法及实例解析。

2 GNU链接器(LD):REGION_ALIAS函数(为存储区域取别名)用法及实例解析

2.1 REGION_ALIAS函数用法

我们可以为使用MEMORY命令创建的存储区域添加一个别名,且每个别名对应一个存储区域。语法如下:

REGION_ALIAS(alias, region)

说明:
alias:别名
region:存储区域名称

2.2 REGION_ALIAS函数实例解析

REGION_ALIAS("RAM", SYSRAM_BASE);

为SYSRAM_BASE存储区域取别名为RAM。后续使用该存储区域可直接使用别名替代存储区域名称,如下:

.ARM.extab :{. = ALIGN(4);*(.ARM.extab* .gnu.linkonce.armextab.*). = ALIGN(4);} >RAM

使用别名还可让存储区域的分配看起来更加清晰,如下是一个实例,将.text段、.data段、.bss段放在了同一个存储区域,但看起来结构更加清晰:

MEMORY
{RAM : ORIGIN = 0, LENGTH = 4M
}
REGION_ALIAS("REGION_TEXT", RAM);
REGION_ALIAS("REGION_RODATA", RAM);
REGION_ALIAS("REGION_DATA", RAM);
REGION_ALIAS("REGION_BSS", RAM);

http://www.mrgr.cn/news/35562.html

相关文章:

  • SQL50题
  • node.js安装和配置教程
  • 详解kafka消息发送重试机制的案例
  • 百度富文本禁止编辑
  • ceph介绍和搭建
  • 优化Mac的鼠标使用体验超简单方法
  • Linux:八种重定向详解(万字长文警告)
  • HDFS_API文件详情查看
  • 《MATLAB项目实战》,专栏目录和介绍
  • 【自动驾驶】控制算法 深度解析车辆纵向控制 | 从算法基础到 Carsim 仿真实践
  • FortiWLC 控制器系统恢复操作介绍
  • 华为杯”第十二届中国研究生数学建模竞赛-B题: 数据的多流形结构分析(续)
  • 公安局软件管理平台建设方案和必要性,论文-2-———未来之窗行业应用跨平台架构
  • 安装pyamgx
  • 3DGS 学习笔记
  • C语言课程设计题目(24个选题)
  • WPF入门教学十六 图形基础
  • update-alternatives工具来管理和切换不同的Java
  • 基于深度学习的人机情感交互
  • JAVA基本简介(期末)
  • HDFS_API文件和文件夹
  • PR视频剪辑工具全指南:开启专业剪辑之旅
  • 力扣每日一题 字符串中最多数目的子序列 贪心 字符串 前缀和
  • 二叉树的基本概念(上)
  • 【C++笔试强训】
  • 交换机和路由器的区别