2014-10-01 1 views
0
LDR  r2, =0x0 :OR: (Region_64K << 1) :OR: Region_Enable 

위의 명령은 어떤 기능을 수행합니까? OR : (Region_64K < < 1) OR : Region_Enable 'gcc의 arm 명령어 ldr 오류가 armcc에서 제대로 작동합니다.

LDR R2가 = 0x0으로'- armcc에 그것은 arm-none-eabi-gcc와 그 지시에 따라 에러를

쓰레기를 제공하는 동안 미세 컴파일

곳의 armcc에 GCC

Region_Enable = 0b1 
Region_64K = 0b01111 

Region_Enable EQU 2_1 
Region_64K EQU 2_01111 

답변

1

표현식에 armasm의 syntax for bitwise operators입니다. GNU 어셈블러의 경우 :OR: 대신 |이 필요합니다.

armasm에 당신이 모두 툴체인과의 호환성을 유지하려는 경우, 당신은 몇 가지 전처리 마법에 의존해야 할 수 있습니다 별칭으로 |를 사용하여 (:AND:에 대한 & 있지만 및 :EOR:에 대한 ^ 분명히 괜찮) 어떤 이유로 사용되지 않습니다 주장 때문에 .

관련 문제