硬汉嵌入式论坛

 找回密码
 立即注册
查看: 572|回复: 0
收起左侧

[其它] 高通全新开源嵌入式链接器工具ELD发布

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2025-5-10 11:44:46 | 显示全部楼层 |阅读模式
https://www.qualcomm.com/develop ... or-embedded-systems
https://github.com/qualcomm/eld

嵌入式链接器在我们的软件栈中扮演着关键角色。虽然许多链接器在传统平台上表现优异,但它们往往难以满足嵌入式系统的特殊需求。

嵌入式项目具有独特的诉求,例如:

1、高度依赖链接脚本——这在主机链接中通常无需关注
2、复杂的用例经常需要针对客户需求,对链接器功能或链接脚本进行定制化扩展

为应对这些挑战,我们开发了名为eld的链接器(基于mclinker改进而来)。该链接器专为处理ELF文件设计,旨在满足嵌入式领域的特殊需求。eld链接器已被纳入高通编译器工具链,并尽可能复用LLVM组件与库。我们的客户依赖eld来构建运行于高通技术硬件上的镜像系统。

我们非常荣幸将eld链接器开源!我们的目标是与链接器及系统软件社区通力合作,共同开发新功能并提升其能力。您可从GitHub下载eld

核心特性
1、全面兼容GNU标准:包括输入文件读取、符号解析及生成符合GNU规范的输出
2、支持多目标架构:
     AArch32与AArch64
     高通Hexagon NPU
     RISC-V(含Xqci扩展),集成GNU兼容链接器的常见功能:
3、部分链接
4、动态链接
5、静态链接
6、链接时优化(LTO)

字符串合并等链接器优化
1、提供对定制化链接脚本的成熟支持

增强功能
1、易读的链接映射文件:我们的技术支持团队深度利用这些信息进行问题诊断,同时这些映射文件支持机器可读,客户可基于构建镜像生成定制化报告
2、链接时问题快速复现:当遇到链接问题时,客户可通过独特方法共享链接时使用的构件
3、全面诊断选项:为符号垃圾回收、命令行问题、警告和错误等复杂场景提供深度调试能力

链接器插件
为响应客户对镜像布局检查修改、扩展非预期用例功能以及生成定制报告的需求,我们开发了链接器插件体系。这些插件允许客户创建在链接时运行的自定义通道,在保持链接器完全控制权的同时,重点强化诊断能力。

该插件架构还能让工具链开发者将链接器视为透明组件:既能精细管理镜像中的预设条件(在假设冲突时触发错误/警告),又能将源码信息编码供链接器使用。该架构还可协助编译器开发者进行布局决策,实现:
1、从编译器向链接器传递辅助信息
2、针对特定用例优化镜像布局

采用该链接器的高通产品
1、高通AI软件基础设施
2、高通5G调制解调器
3、无线局域网产品及驱动
4、高通固件与设备驱动
5、高通音频驱动
6、TrustZone安全方案
7、大量基于Zephyr RTOS的AArch32/AArch64/RISC-V镜像
8、多种基于RISC-V的微控制器镜像

源代码架构
1、核心链接器(按功能划分目录)
2、目标架构特定实现
3、单元测试

核心链接器包含最关键的功能模块,而目标架构特定实现则支持对核心功能的定制化扩展。这种封装结构使开发者能独立修改特定目标功能而不影响其他架构。

测试体系
1、采用Google Unit Test的单元测试
2、基于LLVM lit测试框架的集成测试
我们提供了全面且易读/可修改的单元测试用例,既覆盖链接器核心功能,也包含多种插件示例,帮助客户理解强大的插件架构。团队还会在模拟环境和实体设备上执行内部应用测试。

文档支持
我们提供了详尽的用户文档阐述链接器行为规范,以及包含常见问题解决方案的完整FAQ手册。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-11 04:15 , Processed in 0.193121 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表