1
내가 프로젝트에 대한 C++를 사용은 아래와 같이 ira.h 교류 헤더 파일이 포함구문 오류 : __asm__ ("some_code"::: "CC")
#ifdef __cplusplus
extern "C" {
#endif
extern inline void disable_irqs() {
__asm__ __volatile__("\torc #0x80,ccr\n":::"cc");
}
extern inline void enable_irqs() {
__asm__ __volatile__("\tandC#0x7f,ccr\n":::"cc");
}
#ifdef __cplusplus
}
#endif
내가 컴파일 할 때, 내가 가진 다음과 같은 오류 :
/usr/local/bin/h8300-hitachi-hms-g++ -DCXX -fno-rtti -fno-exceptions -O2 -fno-builtin -fomit-frame-pointer -Wall -I/brickos/include -I/brickos/include/lnp -I. -I/brickos/boot -c rcx1.C -o rcx1.o
In file included from PowerFunctionsController.H:32,
from rcx1.H:27,
from rcx1.C:21:
/brickos/include/lnp/sys/irq.h: In function `void disable_irqs(...)':
/brickos/include/lnp/sys/irq.h:99: parse error before `::'
/brickos/include/lnp/sys/irq.h: In function `void enable_irqs(...)':
/brickos/include/lnp/sys/irq.h:104: parse error before `::'
make: *** [rcx1.o] Error 1
어떻게해야합니까? 범위 연산자 ::
콜론 :
:
인라인 어셈블리에 형식 문자를 추가 할 이유가 있습니까? 일단 컴파일되면 '\ t'와'\ n' 문자는 관련성이 없습니다. –
brickOS 개발자가 제공하는 것입니다 ... – mikezang
"cc"가 플랫폼에서 무엇을하는지 모르겠지만 아무 것도하지 않으면'::: '을 제거하면됩니다. 어쨌든 선택적 매개 변수를 사용하고 있지 않으므로 "cc"부분을 사용하십시오. –