SPRUIG8J January 2018 – March 2024
An Application Binary Interface (ABI) defines how functions that are written separately, and compiled 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 C7000 compiler and linker 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.
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 6.7.2.
For details about the C7000 EABI, see the C7000 Embedded Application Binary Interface (EABI) Reference Guide (SPRUIG4).