CMSIS와 IAR Embedded Workbench for ARM 6.20

기술노트 75890

아키텍처:

ARM

컴포넌트:

compiler

업데이트:

2021-05-06 오후 2:27

소개

낮은 버전의 CMSIS와 IAR Embedded Workbench for ARM 버전 6.20.1 (혹은 상위버전)에 문제가 있습니다. 이로 인해 CMSIS 프로젝트에 빌드 오류가 발생할 수 있습니다.

"Error[Pe147]"와 "Error[Pe337]" 같은 에러입니다.

이와 같은 에러는 주로 core_cm3.h나 이와 유사한 이름의 CMSIS 헤더 파일에서 발생합니다.

해결책

방법 1

현재 버전에서 CMSIS를 기반으로 하는 프로젝트를 복사한 뒤, 당신의 응용프로그램이 추가된 부분을 해당 프로젝트를 기반으로 사용하세요.

방법 2

IAR C/C++ Compiler version 6.20.1 릴리즈 노트를 참고하세요

"A special note on CMSIS integration" 챕터 부분을 참고하시되, "However, ..." 부분을 주목해 주세요.

예제 프로젝트에서 CMSIS 파일을 제외하면, 예제에 필요한 일부 함수들이 사라질 수 있습니다. 이러한 상황에서 포함경로(include path)를 변경하고, 일부 소스 파일을 제외하는 것만으로 문제를 해결할 수 없습니다. 그렇다면 system_stm32f10x.c 와 같이 제외된 파일들 상의 함수들을 프로젝트의 소스에 옮겨야 빌드가 가능해 집니다.

배경지식

IAR Embedded Workbench for ARM 버전 6.20.1 (혹은 상위버전)의 컴파일러는 낮은 버전들 보다 더 많은 내장함수에 관해 더 많은 지원을 합니다. 이는 프로젝트에 포함된 CMSIS 소스코드와 비호환성의 문제로 이어집니다.

릴리즈 노트에서 제안된 수정방법의 핵심은 프로젝트에 포함된 CMSIS 소스 코드를 제거하고, IAR Embedded Workbench for ARM에 설치된 "arm\CMSIS" 폴더안에 있는 CMSIS 소스 코드를 사용하는 것입니다, Project > Options... > General Options > Library Configuration > Use CMSIS 를 선택하여 CMSIS 사용을 활성화 하세요.

IAR Embedded Workbench for ARM 버전 6.20.1의 일부 CMSIS 예제 프로젝트는 상기 언급한 문제의 영향을 받았습니다. 이 문제는 상위 버전에서는 수정되었습니다.


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

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