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
链接器会创建一个单独的输入段来保存压缩数据。请考虑链接器命令文件中的以下 table() 操作。
SECTIONS
{
.task1: load = ROM, run = RAM, table(_task1_table)
}
输出目标文件有一个名为 .task1 的输出段,其中具有不同的加载地址和运行地址。这是可行的,因为当段未被压缩时,加载空间和运行空间具有相同的数据。
或者,请考虑以下代码:
SECTIONS
{
.task1: load = ROM, run = RAM, table(_task1_table, compression=rle)
}
如果链接器对 .task1 段进行压缩,则加载空间数据和运行空间数据会不同。链接器会创建以下两个段:
在为 .task1 段的加载放置指定的存储器区域中,链接器为 .task1.load 输入段分配加载空间。只有一个加载段用于表示 .task1 的加载放置,也就是 .task1.load 段。如果尚未压缩 .task1 数据,则 .task1 输入段将有两个分配:一个用于该段的加载放置,另一个用于该段的运行放置。