【发布时间】:2013-02-28 17:12:43
【问题描述】:
我正在为 Raspberry Pi 编写一些裸机代码,并且收到来自 Windows 上的 ARM 交叉汇编程序的意外警告。导致警告的说明是:
stmdb sp!,{r0-r14}^
和
ldmia sp!,{r0-r14}^
警告是:
警告:基址寄存器的写回不可预测
我可以这样理解,虽然 '^' 修饰符告诉处理器存储寄存器的用户模式副本,但它不知道当指令执行时处理器将处于什么模式并且没有' t 似乎是一种告诉它的方式。我有点担心收到相同的警告:
stmdb sp!,{r0-r9,sl,fp,ip,lr}^
和:
ldmia sp!,{r0-r9,sl,fp,ip,lr}^
尽管我明确不存储 ANY sp 寄存器。
我担心的是,尽管大约 15 年前我曾经做过很多汇编代码,但 ARM 代码对我来说是新的,我可能会误解一些东西!另外,如果我可以安全地忽略这些警告,有没有办法抑制它们?
【问题讨论】:
标签: arm raspberry-pi gnu-arm