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
当已初始化的输出段中存在孔洞时,链接器必须提供原始数据来填充该孔洞。链接器会使用 32 位填充值来填充孔洞。该填充值在存储器中持续复制,直到填满孔洞。链接器按如下方式确定填充值:
SECTIONS
{ outsect:
{
file1.c.obj(.text)
file2.c.obj(.bss)= 0xFF00FF00 /* 用 0xFF00FF00 填充该孔洞 */
}
}
SECTIONS
{ outsect:fill = 0xFF00FF00 /* 用 0xFF00FF00 填充孔洞 */
{
.+= 0x0010; /* 这会形成一个孔洞 */
file1.c.obj(.text)
file1.c.obj(.bss) /* 这会形成另一个孔洞 */
}
}
SECTIONS { .text: { .= 0x0100; } /* Create a 100 word hole */ }
现在使用 --fill_value 选项来调用链接器:
armcl --run_linker --fill_value=0xFFFFFFFF link.cmd
这会用 0xFFFFFFFF 填充孔洞。
每当在已初始化的输出段中创建并填充孔洞时,都会在链接映射中标识该孔洞以及链接器用来填充该孔洞的值。