Controlling Application Binary Interface

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.

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.