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");
[...]
모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.