LDR r2, =0x0 :OR: (Region_64K << 1) :OR: Region_Enable
上述命令有什么作用?
armcc
在arm-none-eabi-gcc
编译时,Region_Enable = 0b1
Region_64K = 0b01111
会产生错误
垃圾跟踪指令 - `ldr R2,=为0x0:OR:(Region_64K&LT;&。1):OR:Region_Enable&#39;
在gcc
上Region_Enable EQU 2_1
Region_64K EQU 2_01111
在armcc上
{{1}}
答案 0 :(得分:1)
表达中的armasm syntax for bitwise operators。对于GNU汇编程序,您需要|
而不是:OR:
。
由于armasm声称由于某种原因而弃用|
作为别名(尽管&
的{{1}}和:AND:
的{{1}}显然很好)如果你想保持与两个工具链的兼容性,你可能需要求助于一些预处理器魔法。