SPRUI04F july 2015 – april 2023
An Application Binary Interface (ABI) defines how functions that are written separately, and compiled or assembled separately can work together. This involves standardizing the data type representation, register conventions, and function structure and calling conventions. An ABI allows ABI-compliant object files to be linked together, regardless of their source, and allows the resulting executable to run on any system that supports that ABI. It defines linkname generation from C symbol names. It also defines the object file format and the debug format, along with documenting how the system is initialized. In the case of C++, it defines C++ name mangling and exception handling support.
The C6000 compiler and linker now support only the Embedded Application Binary Interface (EABI) ABI, which works only with object files that use the ELF object file format and the DWARF debug format. If you want support for the legacy COFF ABI, please use the C6000 v7.4.x Code Generation Tools and refer to SPRU187 and SPRU186 for documentation.
EABI uses the ELF object file format which enables supporting modern language features like early template instantiation and export inline functions support. TI-specific information on EABI mode is described in Section 8.9.2.
For low-level details about the C6000 EABI, see the C6000 Embedded Application Binary Interface (SPRAB89).