SPRU513Y August 2001 – June 2022 SM320F28335-EP
An Application Binary Interface (ABI) defines the low level interface between object files, and between an executable and its execution environment. The ABI exists to allow ABI-compliant object code to link together, regardless of its source, and allows the resulting executable to run on any system that supports that ABI.
The C28x Code Generation Tools support both the COFF ABI and the EABI ABI. The ABI used by the assembler is determined by the --abi command-line option.
When using the COFF ABI, the output files are in COFF format. See the Common Object File Format Application Report (SPRAAO8) for details.
When using EABI, the output files are in Executable and Linking Format (ELF). See the TMS320C28x Optimizing C/C++ Compiler User's Guide (SPRU514) and the C28x Embedded Application Binary Interface Application Report (SPRAC71) for information on the EABI ABI.
All object files in an application must be built for the same ABI. The linker detects situations where object modules conform to different ABIs and generates an error.
Converting an assembly file from the COFF API to EABI requires some changes to the assembly code. For example, you would typically need to make the following changes when a memory section is referenced:
The examples in this guide are generally written for the COFF ABI.