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
使用 trampoline 的优点是可以将所有的调用都当成 near 调用,这种调用的速度更快且更高效。您只需修改无法到达的调用。此外,几乎不需要考虑相互调用的函数的相对位置。调用必须通过 trampoline 的情况比 near 调用少见。
虽然生成 far 调用 trampoline 提供了更直接的解决方案,但 trampoline 的缺点是比直接调用函数要慢一些。trampoline 需要调用和分支。此外,虽然内联代码可以根据调用环境进行定制,但 trampoline 是以更通用的方式生成的,其效率可能略低于内联代码。
如果某个调用无法到达其被调用函数,为该调用创建 trampoline 代码段的另一种方法是实际修改该调用的源代码。在某些情况下,可在不影响代码大小的情况下完成此过程。但是,一般来说,这种方法是极其困难的,尤其是当代码的大小受变换影响时。