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
链接器支持链接器命令文件语法的扩展,使您能够进行以下操作:
SECTIONS
{
...
UNION
{
GROUP
{
.task1: { task1.c.obj(.text) }
.task2: { task2.c.obj(.text) }
} load = ROM, table(_task12_copy_table)
GROUP
{
.task3: { task3.c.obj(.text) }
.task4: { task4.c.obj(.text) }
} load = ROM, table(_task34_copy_table)
} run = RAM
...
}
使用链接器命令文件为由链接器生成的复制表生成地址中所示的 SECTIONS 指令,链接器可以生成两个名称如下的复制表:_task12_copy_table 和 _task34_copy_table。每个复制表提供与复制表关联的 GROUP 的加载地址、运行地址和大小。可使用链接器生成的符号 _task12_copy_table 和 _task34_copy_table(它们分别提供两个复制表的地址)从应用程序源代码访问此信息。
通过使用此方法,无需担心复制表的创建或维护。您可以在 C/C++ 或汇编源代码中引用由链接器生成的任何复制表的地址,从而将该值传递给通用复制例程,然后该例程将处理复制表并影响实际复制。