Electronic Joint Business

Solution for E-Business

Binutils 移植指南 (一)

本文是对 binutils 现有文档的补充,旨在帮助那些第一次将 binutils 工具移植到新的硬件架构的软件工程师。本文是根据作者的实际经验编写的。难免会有疏漏,欢迎读者提出任何改善建议。1 一、 为什么编写本文? 虽然 binutils 项目包含了 100 多页的内部指南, 但本文主要针对那些初次进行 binutils 开发/移植的人。Binutils 内部指南存在一些缺陷: 它倾向于对每个函数进行详细描述,但缺乏宏观大局。 文档并不完整,有许多有用的章节尚待编写。(例如relocation详细信息) 。 因此,当工程师初次尝试将 binutils 移植到新的架构上时,他总要不断阅读源代码来弄明白 binutils 如何工作,进而了解如何移植到其他体系架构。 。 本文将讨论如何将紧凑 RISC (又称 CR16) 体系结构植入 binutils , 希望这些学习经验可以帮助到其他人, 特别是那些正在寻找将 binutils 工具移植到新架构的工程师。CR16 的相关代码可以在 binutils 中获得。 二、Binutils 文件的组织结构 binutils 源代码按目录进行组织,其中的一些组件是类库,在内部或其他项目中使用。比如 GNU GDB 调试器会用到 BDF 类库。这些类库大多有自己的顶层目录。主要的目录列举如下: 这些目录包含如下组件: include: 跨组件共享的一些头文件,而组件专有的头文件则保存在于该组件自己的目录中。 bfd: 即 Binary File […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.