SPRAC71B February 2019 – October 2023
The ELF header provides a number of fields that guide interpretation of the file. Most of these are specified in the System V ELF specification. This section augments the base standard with specific details for the C28x.
e_indent
The 16-byte ELF identification field identifies the file as an object file and provides machine-independent data with which to decode and interpret the file's contents. Table 11-2 specifies the values to be used for C28x object files.
Index | Symbolic Value | Numeric Value | Comments |
---|---|---|---|
EI_MAG0 | 0x7f | Per System V ABI | |
EI_MAG1 | E | Per System V ABI | |
EI_MAG2 | L | Per System V ABI | |
EI_MAG3 | F | Per System V ABI | |
EI_CLASS | ELFCLASS32 | 1 | 32-bit ELF |
EI_DATA | ELFDATA2LSB | 1 | Little-endian |
EI_VERSION | EV_CURRENT | 1 | |
EI_ABIVERSION | 0 |
The EI_OSABI field shall be ELFOSABI_NONE unless overridden by the conventions of a specific platform. No platforms for the C28x family override the default setting of the EI_OSABI field; its value is always ELFOSABI_NONE.
e_type
There are currently no C28x-specific object file types. All values between ET_LOPROC and ET_HIPROC are reserved to future revisions of this specification.
e_machine
An object file conforming to this specification must have the value EM_TI_C2000 (141, 0x8D).
e_entry
The base ELF specification requires this field to be zero if an application does not have an entry point. Nonetheless, some applications may require an entry point of zero (for example, via the reset vector).
A platform standard may specify that an executable file always has an entry point, in which case e_entry specifies that entry point, even if zero.
e_flags
This member holds processor-specific flags associated with the file. There are no C28x-specific flags for e_flags field.