读取ARM AAPCS(ARM EABI),我发现: 寄存器r9的作用是平台特定的。虚拟平台可以将任何角色分配给该注册,并且必须记录这种使用。例如,它可以将其指定为位置无关的数据模型中的静态基址(SB),或者可以在具有线程本地存储的环境中将其指定为线程寄存器(TR)。这个寄存器的用法可能要求所有呼叫持有的值是永久的。不需要这种特殊寄存器的虚拟平台可以将r9指定为额外的被呼叫保存的变量寄存器v6。ARM - 如何使用armcc保存r9寄存器
我想使用r9作为我的特定航空电子设备抢占式操作系统的PID持有者,但我无法弄清楚如何保留它:armcc C编译器总是使用它作为变量寄存器,所以它的值始终通过应用软件进行更改。
有什么想法?用armcc可以吗? GCC?戴铂?...
感谢您的任何帮助。
问候
克里斯托夫
大!!!我从200个编译器选项中解脱出来。非常感谢。 – user2010402