ARMCC编译环境下的 $ Sub $ $ 和 $ Super $ $
用$sub$$
和$super$$
函数标识符编写代码,可实现在进入主应用程序之前对系统功能的初始化。
ARM® Compiler v5.06 for µVision® armlink User Guide
这是具有特殊模式的函数:用于有一个已经存在且不能被改变的函数的情况下(比如不能更改的库函数和ROM代码中)。使用这两个模式可以帮原函数打补丁进行对程序的修补。
例如存在一个函数foo();
$sub$$foo
:使用foo函数来定义新的功能函数,在foo()函数之前或者后使用$sub$$foo
可以添加一些新的程序代码。
$super$$foo
:使用foo函数可直接调用原始的未修补的函数,使用$super$$foo
函数将直接跳转到foo()函数。
简言之就是用来添加修改初始化过程中要执行的程序。
仿真单步运行:
注意$sub$$
和$super$$
机制只在静态链接时工作,$super$$
引用是不能导入或导出到动态符号表中的。