ZHCU947E June 2015 – January 2023
十六进制转换实用程序 SECTIONS 指令可按名称转换目标文件的具体段。您还可以指定将这些段放置在 ROM 中链接器命令文件指定加载 地址以外的地址。如果您:
未初始化的段从不 转换,无论 SECTIONS 指令是否指定。
在命令文件中使用 SECTIONS 指令。(请参阅GUID-99042BB8-4F51-43A1-A9FD-4062D46BA835.html#GUID-99042BB8-4F51-43A1-A9FD-4062D46BA835。)通用语法为:
SECTIONS { | |
oname(sname)[:][paddr=value] oname(sname)[:][paddr= boot] oname(sname)[:][boot] ... } |
SECTIONS | 开始指令定义。 |
oname | 标识段所在的目标文件名。如果只有一个输入文件,文件名是可选项,但在其他情况下是必备项。 |
sname | 标识输入文件中的一个段。如果您指定了一个不存在的段,实用程序会发出警告并忽略该名称。 |
paddr=value | 指定此段应放置的物理 ROM 地址。此值会覆盖由链接器分配的段加载地址。此值必须为十进制、八进制或十六进制常量。它还可以是字 boot(指示引导加载程序将使用的引导表段)。如果文件包含多个段,并且一个段使用 paddr 参数,则所有段都必须使用 paddr 参数。 |
boot | 配置一个段,供引导加载程序加载。它与使用 paddr=boot 等效。引导段的物理地址由引导表的位置决定。引导表的原始地址由 --bootorg 选项指定。 |
若要与链接器的 SECTIONS 指令更加相似,您可以在段名后添加冒号(取代引导键盘上的等号)。例如,以下语句是等效的:
SECTIONS { .text: .data: boot }
SECTIONS { .text: .data = boot }
在下例中,目标文件包含六个未初始化的段:.text、.data、.const、.vectors、.coeff 和 .tables。假设您只希望转换 .text 和 .data。使用 SECTIONS 指令指定:
SECTIONS { .text: .data: }
若要将这些段配置为引导加载,请添加关键字 boot:
SECTIONS { .text = boot .data = boot }