ZHCADC4A September 2011 – March 2014
ELF 标头提供了许多用于指导文件解释的字段,其中大部分都在 System V ELF 规范中指定。本节使用 C6000 的特定详细信息来扩充基本标准。
e_indent
16 字节 ELF 标识字段将文件标识为目标文件,并提供与机器无关的数据,用于解码和解释文件的内容。表 13-2 指定了将用于 C6000 目标文件的值。
索引 | 符号值 | 数值 | 说明 |
---|---|---|---|
EI_MAG0 | 0x7f | 根据 System V ABI | |
EI_MAG1 | E | 根据 System V ABI | |
EI_MAG2 | L | 根据 System V ABI | |
EI_MAG3 | F | 根据 System V ABI | |
EI_CLASS | ELFCLASS32 | 1 | 32 位 ELF |
EI_DATA | ELFDATA2LSB | 1 | 小端字节序 |
ELFDATA2MSB | 2 | 大端字节序 | |
EI_VERSION | EV_CURRENT | 1 | |
EI_OSABI | ELFOSABI_C6000_ELFABI | 64 | 裸机动态链接平台 |
EI_OSABI | ELFOSABI_C6000_LINUX | 65 | 无 MMU 的 Linux 平台 |
EI_ABIVERSION | 0 |
EI_OSABI 字段应为 ELFOSABI_NONE,除非由特定平台的约定覆盖。裸机动态链接模型 (节 14.4) 和 Linux (Chapter15) 是两个定义该字段特定值的平台。
ELFOSABI_NONE 以外的值表示断言:该文件符合对应于指定值的特定 ABI 变体的约定。仅此类文件对该特定平台有效。可以为 ABI 定义的特定变体以外的平台构建对象;这些对象应标识为 ELFOSABI_NONE,表示没有任何断言。确定此类文件是否与给定环境兼容时,不受 ABI 影响。
e_type
当前无 C6000 特定目标文件类型。保留 ET_LOPROC 和 ET_HIPROC 之间的所有值,以在本规范的未来修订版中使用。
e_machine
符合本规范的目标文件必须具有值 EM_TI_C6000(140,0x8c)。
e_entry
如果应用程序没有入口点,则基本 ELF 规范要求该字段为零。尽管如此,某些应用程序可能需要零入口点(例如,通过复位向量)。
平台标准可指定可执行文件始终具有入口点,在这种情况下,e_entry 指定该入口点,即使该入口点为零。
e_flags
该成员保存与文件相关的处理器特定标志,有一个 C6000 特定标志。
名称 | 值 | 注释 |
---|---|---|
EF_C6000_REL | 0x1 | 文件包含静态重定位信息 |
EF_C6000_REL 标志用于指示可执行文件 (ET_EXEC) 或共享对象 (ET_DYN) 中是否存在静态重定位信息。具有静态重定位信息的共享对象称为可重定位模块,通常用于可静态或动态链接的库。