IT-block ends prematurely 에러 메시지

기술노트 31138

아키텍처:

ARM

컴포넌트:

compiler

업데이트:

2021-05-07 오전 7:33

소개

IAR Embedded Workbench for ARM 버전 7.30 (혹은 이전 버전)은 다음과 같은 구조도 허용하였습니다:

[...]
asm("ITE EQ");
asm("MRSEQ R0, MSP");
asm("MRSNE R0, PSP");
[...]

상기의 구조는 버그입니다. IAR Embedded Workbench for ARM 버전 7.40.1에서는 수정되었습니다.

이제 상기의 코드는 다음과 같은 진단 메시지를 발생시킵니다:

Error[Ta117]: IT-block ends prematurely, or there is a label within the IT-block

결론

asm()-구문 사이에 일반적인 C 소스 코드를 배치할 수 있었으나, 이와 같은 구조는 안전하지 않습니다.

다음과 같이 작성하세요

구조를 단독 라인으로된 어셈블러 구문으로 만들어, 그 안에 다중 행을 사용하세요.

상기의 구조는 다음과 같이 재 작성해야 합니다:

[...]
asm("ITE EQ \n"
"MRSEQ R0, MSP \n"
"MRSNE R0, PSP");
[...]

 

 

모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.