ZHCUAV7Z september 1995 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
链接器可使用户指定一个显式的存储器范围列表,可以向其中分配输出段。考虑以下示例:
MEMORY
{
P_MEM1 : origin = 0x02000, length = 0x01000
P_MEM2 : origin = 0x04000, length = 0x01000
P_MEM3 : origin = 0x06000, length = 0x01000
P_MEM4 : origin = 0x08000, length = 0x01000
}
SECTIONS
{
.text : { } > P_MEM1 | P_MEM2 | P_MEM4
}
运算符 | 用于指定多个存储器范围。输出段 .text 作为一个整体分配给与之适应的第一个存储器范围。存储器范围按指定顺序访问。在此示例中,链接器首先尝试在 P_MEM1 中分配段。如果该尝试失败,链接器会尝试将该段置于 P_MEM2 中,依此类推。如果未在任何指定的存储器范围中成功分配输出段,则链接器会发出错误消息。
借助这种类型的 SECTIONS 指令规范,链接器可以无缝处理超出最初分配的存储器范围可用空间的输出段。用户可以让链接器将段移动到其他某个区域,而不是修改链接器命令文件。