ZHCU947F June 2015 – August 2025
如果已初始化的输出段中存在孔洞,链接器提供原始数据来填充该孔洞。链接器会使用 32 位填充值来填充孔洞,该填充值在存储器中持续复制,直到填满孔洞。链接器按如下方式确定填充值:
SECTIONS
{ outsect:
{
file1.c.obj(.text)
file2.c.obj(.bss)= 0xFF00FF00 /* Fill this hole with 0xFF00FF00 */
}
} SECTIONS
{ outsect:fill = 0xFF00FF00 /* Fills holes with 0xFF00FF00 */
{
. += 0x0010; /* This creates a hole */
file1.c.obj(.text)
file1.c.obj(.bss) /* This creates another hole */
}
} SECTIONS { .text: { .= 0x0100; } /* Create a 100 word hole */ }现在使用 --fill_value 选项来调用链接器:
cl6x --run_linker --fill_value=0xFFFFFFFF link.cmd这会用 0xFFFFFFFF 填充孔洞。
每当在已初始化的输出段中创建并填充孔洞时,都会在链接映射中标识该孔洞以及链接器用来填充该孔洞的值。