我对汇编知之甚少,但当我尝试构建一个使用Sciopta RTOS和Cortex A处理器的项目时,它产生了以下错误:
Error[401]: Operand syntax error
mrc p15, #0, r0, c9, c14, #2
-----------------^
在文件cortex_a.s
中有没有人对这个问题有所了解?
答案 0 :(得分:1)
从错误代码和文本看起来,你看起来正在使用IAR汇编程序,但.s扩展名是GNU汇编程序约定,所以可能代码是为GNU汇编程序编写的,而不是它们IAR,它们在这方面有所不同。
我的猜测是删除#,因为除了一个立即操作数之外没有其他选项,所以它是隐式的。发行说明here支持此功能,其中包含以下注释:
在EWARM 6.50.2中:
MCR和MRC指令现在允许#在操作代码操作数之前也处于Thumb模式。
[EW23559]
据推测,您的EWARM版本较旧?