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
代码生成工具目前支持在存储器的一个(慢)区域加载程序代码而在另一个(更快)区域运行程序代码的功能。实现此目标的方法是为链接器命令文件中的输出段或组指定单独的加载和运行地址。然后执行一系列指令(在运行时将一个函数从慢速存储器移动到快速存储器中的复制代码),从而预先将程序代码从其加载区域移动到其运行区域以满足需要。
在使用此功能设置系统时,程序员必须承担一些责任。其中一项责任是确定要移动的程序代码的大小和运行时地址。当前执行此过程的机制涉及在复制代码中使用 .label 指令。在运行时将一个函数从慢速存储器移动到快速存储器中展示了一个简单示例。
这种指定程序代码大小和加载地址的方法存在局限性。虽然适用于完全包含在单个源文件中的单个输入段,但如果程序代码分布在多个源文件中,或者如果程序员想要将整个输出段从加载空间复制到运行空间,那么这种方法就会变得更加复杂。
这种方法存在的另一个问题是,它没有考虑到移动的段可能有一个关联的 far 调用 trampoline 段需要随之移动。