1.1.1. 用于实现 ARM 体系结构兼容性的 ABI

ARM 体系结构的应用程序二进制接口 (ABI) 是一个规范系列,描述了有关将源程序转换为目标文件的处理器特定要求。 通过将符合 ABI 相关要求的任何工具链生成的目标文件链接在一起,可以生成一个最终可执行映像或库。 规范中的每个文档介绍了特定领域的兼容性;例如,《ARM 体系结构的 C 库 ABI》 (CLIBABI) 介绍对所有符合标准的实现来说都相同的那部分 C 库。ABI 文档包含几个标记为平台特定的 领域。 要定义完整执行环境,您必须提供这些平台特定的细节。 这产生了一些补充规范,如 《ARM GNU/Linux ABI 补充规范》。通过 ARM 体系结构的基本标准 ABI (BSABI),您可以使用不同开发商编写的 ARM、Thumb 以及 Thumb-2 对象和库(均支持 ARM 体系结构的 ABI)。RVCT 完全支持 BSABI,其中包括对 DWARF 3 调试表(DWARF 调试标准版本 3)的支持。

有关 ARM 支持的基本标准、其他 ARM 嵌入式 ABI (AEABI)、软件接口以及其他标准的完整信息,请参阅 install_directory\Documentation\Specifications\...

有关最新发行版本的详细信息,请访问 http://www.arm.com

ARM C 和 C++ 库符合 BSABI 和以下 AEABI 中介绍的标准:

测试一致性

如果需要完整的 CLIBABI 可移植性,请在使用 #include 包含任何库标题之前指定 #define _AEABI_PORTABILITY_LEVEL 1,例如 <stdlib.h>。 也可以在命令行中使用 -D_AEABI_PORTABILITY_LEVEL=1 来实现此目的。 这可提高您的目标文件到其他 CLIBABI 实现的可移植性,但会降低某些库运算的性能。

有关详细信息,请参阅 install_directory\Documentation\Specifications\... 中的 CLIBABI 规范 clibabi.pdf

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0349AC
Non-Confidential