2013-07-08 5 views
0

임베디드 프로그래밍이 처음이므로 구문에 대해 잘 모릅니다. 나는 이것을 GCC toolchain에 사용할 수 있도록해야한다. 드라이버가 다른 툴체인을 사용하여 컴파일되었습니다. 나는 솔직히 컴파일러 플래그를 많이 사용하지 않았기 때문에 약간의 손실을 겪고있다.GCC 용 #pragma interrupt

void __attribute__ ((interrupt ("CMT0, CMI0"))) int_cmt0_isr(); 
: 나는 다음과 같이 보일한다고 생각

#pragma interrupt int_cmt0_isr(vect=VECT(CMT0,CMI0)) 

: http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html

내가 GCC와 일치하는이 라인의 구문을 변경해야합니다 :이 링크는 내가 사용해야한다고 생각 형식을 제공합니다

int_cmt0_isr()은 vectortable의 해당 위치에서 반복 오류가 발생할 때 호출되어야하는 함수입니다.

도움이 될 수 있다면 도움이 될 것입니다.

감사합니다.

+1

옵션이 지원되는 대상에 대해 컴파일하는 경우 효과가 거의 비슷합니다. 한 번에 두 개의 인터럽트를 지정할 수 있다는 것은 확실하지 않습니다. 두 개의 별도 속성을 작성해야 할 수도 있습니다. CMT0 및 CMI0을 지원하는 플랫폼이 무엇인지 명확하지 않거나 GCC에서 지원하는 플랫폼으로 변환해야 할 수도 있습니다. –

답변

0

이 장치에 사용하고있는 GCC 버전의 별도의 인터럽트 테이블에 특별한 항목을 추가해야했습니다. 나는 결국 #pragma를 사용하지 않게되었다.