GNU链接器(LD):ORIGIN、LENGTH函数的用法及实例解析

embedded/2024/10/17 17:16:36/

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)链接器脚本中ORIGINLENGTH函数的用法及实例解析。

ORIGINLENGTH_18">2 GNU链接器(LD):ORIGINLENGTH函数的用法及实例解析

ORIGINLENGTH_19">2.1 ORIGINLENGTH函数的用法

ORIGIN(memory)函数可以访问存储区域的首地址,memory是存储区域名。
LENGTH(memory)函数可以访问存储区域的大小,memory是存储区域名。

ORIGINLENGTH_27">2.2 ORIGINLENGTH实例解析

__MEM_START__ = ORIGIN(RAM) + START_OFFSET;
__MEM_SIZE__  = LENGTH(RAM) - START_OFFSET;
__MEM_START2__ = ORIGIN(SRAM1);
__MEM_SIZE2__ = LENGTH(SRAM1);

通过ORIGINLENGTH函数来修改内存起始地址和内存大小符号的值。


http://www.ppmy.cn/embedded/128219.html

相关文章

docker数据管理和网络通信+docker实例+dockerfile镜像实战

一、Docker 的数据管理 管理 Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)。 1.数据卷(主机和容器间的挂载) 数据卷是一个供容器…

Jmeter进行http接口测试

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 本文主要针对http接口进行测试,使用jmeter工具实现。 Jmeter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较…

IPguard与Ping32数据防护能力全面对比,深入探讨两款防泄密软件数据防护能力差异

在信息安全愈发重要的今天,企业面临着数据泄露的重大威胁。选择合适的防泄密软件是保护企业敏感信息的关键。IPguard与Ping32是市场上备受关注的两款防泄密软件,它们在数据防护能力上的差异值得深入探讨。 Ping32:全面的保护体系 Ping32以其…

【科学教育类资源网站分享】

教育资源是非常重要的,一些分享了几个常用的科学教育类资源网站: 1、小学科学教学网 官网:https://www.xxkxjx.net,教学动态、资源下载应有尽有,以教科版为主。 2、国家中小学智慧教育平台: 官网&#…

Nginx 和 Lua 设计黑白名单

使用 Nginx 和 Lua 设计黑白名单机制,借助 Redis 存储 在现代网络应用中,安全性是一个不可忽视的关键因素。应用程序需要能够有效地管理访问权限,以保护其资源不被恶意用户攻击。黑白名单机制是实现访问控制的一种有效方式。本文将详细介绍如…

TypeReference 这个类有什么作用?

文章目录 处理复杂类型简化 JSON 反序列化 TypeReference 是 Jackson 库中的一个类,主要用于在进行 JSON 序列化和反序列化时描述 Java 类型,尤其是在处理泛型时。Jackson 是一个流行的 Java 库,用于将 Java 对象转换为 JSON 以及将 JSON 转换…

oracle sysdate 减小时

在Oracle中,要将sysdate减去一定数量的小时,可以使用numtodsinterval函数结合sysdate进行操作。例如,如果你想要从当前时间减去5小时,可以使用以下SQL语句: SELECT sysdate - numtodsinterval(5, HOUR) FROM dual; 这…

人工智能的核心技术之机器学习

大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具,拥抱AI时代的到来。 人工智能(AI)核心技…