<Error Message>

Error[Pe337]: linkage specification is incompatible with previous "__nounwind __WFI" (declared at line 194 of "C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.4\arm\inc\c\intrinsics.h")
Error[Pe337]: linkage specification is incompatible with previous "__nounwind __WFE" (declared at line 193 of "C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.4\arm\inc\c\intrinsics.h")
Error[Pe337]: linkage specification is incompatible with previous "__nounwind __SEV" (declared at line 192 of "C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.4\arm\inc\c\intrinsics.h")
Error[Pe337]: linkage specification is incompatible with previous "__nounwind __CLREX" (declared at line 190 of "C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.4\arm\inc\c\intrinsics.h")
Error[Pe311]: cannot overload functions distinguished by return type alone
Error[Pe338]: more than one instance of overloaded function "__nounwind __set_PSP" has "C" linkage
Error[Pe311]: cannot overload functions distinguished by return type alone
Error[Pe338]: more than one instance of overloaded function "__nounwind __set_MSP" has "C" linkage
Error[Pe338]: more than one instance of overloaded function "__nounwind __REV16" has "C" linkage
Error[Pe338]: more than one instance of overloaded function "__nounwind __RBIT" has "C" linkage
Error[Pe311]: cannot overload functions distinguished by return type alone
Error[Pe311]: cannot overload functions distinguished by return type alone

 

 

<원인>

IAR 6.3(또는 상위 Version)과 STM32F10x Standard Periph Liblary 사이에서 CMSIS Library 관련하여 충돌하여 발생한 Error Message 이다.

 

<참고> CMSIS - Cortex Microcontroller Software Interface Standard

http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php

 

 

<해결방법>

STM32F10x Standard Periph Liblary의 CMSIS Library를 제거하고, IAR 6.3(또는 상위 Version)에서 제공하는 CMSIS  Library를 사용한다.

 

① Project에 Include Directory에서 (STM32F10x Standard Periph Liblary)\Libraries\CMSIS\CM3\CoreSupport Directory를 포함하지 않는다.

 

아래의 File이 Project에 추가되면 안된다.

(STM32F10x Standard Periph Liblary)\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h

(STM32F10x Standard Periph Liblary)\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c

 

② Project Options > General Options > Library Configuration > Use CMSIS Check 한다.

 

 

Posted by 크릴새우

댓글을 달아 주세요


지니사랑님의 도움으로 만들게 된 놈이다.


Posted by 크릴새우

댓글을 달아 주세요

1) 새 Workspace 및 Project 만들기.
    File -> New -> Workspace 를 순서대로 선택한다.



    Project를 저장할 폴더를 지정하고, Project 이름을 적은뒤 저장 버튼을 클릭한다.



    Project -> Create New Project 를 순서대로 선택한다.



    사용하려는 언어를 선택하고, OK를 클릭한다.



    File -> Save Workspace 를 선택한다.



    Workspace 이름을 적은뒤 저장 버튼을 클릭한다.



2) Project Options 설정하기.
    Project ->Options.. 를 선택한다.



    General Options 카테고리의 Target 텝에서 사용하고자 하는 Process를 선택한다.



    C/C++ Compiler 카테고리에서 Preprocessor 텝에서 Project에 추가될 헤더파일의 경로를 추가해 준다.



    Output Converter 카테고리에서 *.out 파일을 다른포멧(*.hex, *.bin  등)으로 변경하도록 설정한다.



    Linker 카테고리의 Config 텝에서 Linker Configuration File(*.icf)을 선택해 준다.
    V4.xx 에서는 *.xcl 파일에 해당한다.



    OK 버튼을 클릭한다.

Posted by 크릴새우

댓글을 달아 주세요

이전버튼 1 이전버튼

블로그 이미지
크릴새우

태그목록

공지사항

Yesterday8
Today1
Total30,573

달력

 « |  » 2020.12
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

글 보관함