ZHCADC4A September 2011 – March 2014
程序标头包含以下字段。
p_type
C6000 为程序标头中的 p_type 字段定义了一个特定于处理器的段类型。
名称 | 值 | 注释 |
---|---|---|
PT_C6000_PHATTR | 0x70000000 | 扩展段属性 |
PT_C6000_PHATTR 段类型将此段标识为包含有关程序中其他 PT_LOAD 段的额外描述性信息。此段包含 SHT_TI_PHATTRS 类型的单个段。Chapter19详细说明了程序标头属性。
p_vaddr,p_paddr
C6000 当前没有虚拟寻址。p_vaddr 和 p_paddr 字段指示段的执行地址。在一个地址加载并复制到另一地址执行的段在目标文件中由两个不同的段表示:一个是包含此段的代码或数据的加载映像段,其地址字段引用载入地址;另一个是未初始化的运行映像段,其地址字段引用运行地址。应用负责在适当时将加载映像的内容复制到运行地址。
p_flags
为 C6000 定义了一个特定于处理器的段标志。
名称 | 值 | 注释 |
---|---|---|
PF_C6000_DPREL | 0x10000000 | 使用 DP 相对寻址访问 |
PF_C6000_DPREL 标志用于标识使用 DP 相对寻址访问的段,因此受链接后放置约束。与位置无关的模块通常不包含用于 DP 相对寻址的动态重定位。如果存在多个 DP 相对段,则必须维护它们相对于 DP(以及彼此之间)的位置。此标志用于将此类段标识到动态加载器或其他链接后代理,以便其协调此类段的分配。
TI 工具链使用一些辅助段属性。由于可用标志的数量有限,我们为其他段属性定义了另一种替代机制,即Chapter19所述的程序标头属性表。
p_align
如 System V ABI 中所述,可加载段在文件中对齐,以使其 p_vaddr(存储器中的地址)和 p_offset(文件中的偏移量)一致,模数为 p_align。在具有虚拟存储器的系统中,p_align 通常指定页面大小。除非针对特定平台指定,在 C6000 中,未指定 p_align 的含义和设置。