ZHCU876Z July 2001 – October 2023 SM320F28335-EP
应用程序二进制接口 (ABI) 定义了单独编译或汇编(可能使用不同供应商的编译器进行编译)的函数如何协同工作。这涉及到数据类型表示、寄存器惯例、函数结构和调用惯例的标准化。ABI 定义了从 C 符号名称生成的链接名称。它定义了目标文件格式和调试格式。它定义了系统初始化的方式。如果是 C++,它则定义了对 C++ 名称的处理和异常处理支持。
TI C28x 代码生成工具支持 COFF ABI 和 EABI ABI。默认情况下,使用 COFF 生成目标文件。选择 ABI 由 --abi 命令行选项控制,并在节 2.13进行了讨论。如果为 EABI 编译此代码,则定义 __TI_EABI__ 预定义符号并将其设置为 1。
若要生成与 EABI 兼容的目标文件,必须使用 C28x 编译器版本 18.8.0.STS 或更高版本。COFF ABI 是旧版编译器支持的唯一 ABI。
EABI ABI 需要 ELF 目标文件格式。此格式支持现代语言功能,如早期模板实例化和导出内联函数。有关 C28x EABI 的低层面细节,请参阅《C28x 嵌入式应用程序二进制接口》应用报告 (SPRAC71)。
链接到创建应用程序的所有目标文件必须使用相同的 ABI。也就是说,他们必须全部使用 COFF ABI 或全部使用 EABI;这些 ABI 彼此不兼容。