阅读 ARM AAPCS (ARM EABI),我发现: 寄存器 r9 的作用是特定于平台的。虚拟平台可以为该寄存器分配任何角色,并且必须记录此用法。例如,它可以在与位置无关的数据模型中将其指定为静态基址(SB),或者在具有线程本地存储的环境中将其指定为线程寄存器(TR)。该寄存器的使用可能要求所保存的值在所有调用中都是持久的。不需要这种特殊寄存器的虚拟平台可以将 r9 指定为附加的被调用者保存的变量寄存器 v6。
我想将 r9 用作我的特定航空电子抢占式操作系统的 PID 保持器,但我不知道如何保存它:armcc C 编译器总是将它用作变量寄存器,因此它的值总是通过应用程序改变。
任何想法 ?armcc 可以吗?海湾合作委员会?戴铂?...
谢谢你的帮助。
问候
克里斯托夫