ZHCU947E June 2015 – January 2023
通常情况下,为 MEMORY 范围指定填充值可创建初始化数据段,以涵盖之前未初始化的存储器区域。若要为整个存储器范围生成 ECC 数据,链接器的整个范围中需要有初始化数据,或者需要知道在运行时未初始化的存储器区域将有何种值。
如果要为整个存储器范围生成 ECC,但不希望通过指定填充值来初始化整个范围,可以使用“vfill”限定符来代替“fill”限定符,从而以虚拟方式填充范围:
MEMORY {
FLASH : origin=0x0000 length=0x4000 vfill=0xffffffff
}
vfill 限定符的功能与省略 fill 限定符相当,只是它允许针对未初始化的输入存储器范围区域生成 ECC 数据。它的优势在于可减少生成的目标文件的大小。
vfill 限定符只对 ECC 数据生成产生影响。它无法与 fill 限定符同时指定,因为会产生歧义。
如果在 ECC 限定符中指定了 fill,但未指定 vfill,则 vfill 默认为 0xff。