今天用IAR 6.4打开 6.3的工程,编译时发现一大堆的错误, ' S0 W L, q8 M( e/ s9 S9 X8 P Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned long __STREXH(unsigned short, unsigned short *)" (declared at line 186 of "D:\Program Files (x86)\IAR E:\STM32-P207_P407_IAR_6.30.7_DEMO_V4_1\Libraries\CMSIS\CM3\__CoreSupport(not_used)\core_cm3.h 1186 6 W' s1 L4 O+ d/ G( q0 G 首先发现是头文件包含路径丢失;0 Q" V7 v$ l; `# S. v 添加方法:5 r! J, l. B6 e8 c/ U: K 1. 右击工程Options->选择C/C++ Compiler ->Preprocessor4 z& ^6 o& a; D, _" \ 添加相对路径,如下示例:" [2 J3 \6 { Z3 |, m $PROJ_DIR$\..\..\Libraries\STM32F2xx_StdPeriph_Driver\inc $PROJ_DIR$\..\..\Project\Audio $PROJ_DIR$\..\..\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx + D* e8 X) o4 s- E+ i $PROJ_DIR$ 是工程所在路径。- ?) f Z( x2 @$ P 7 e* Q6 w9 ^( P" ^/ v& ]8 R! n; v 2. 由于版本不同,所以打工工程时,CPU选择时会默认为ARM7,所以要修改;6 E* e+ G3 f/ t' P/ D2 t/ H 修改方法如下: 右击工程Options->选择General Options ->Target ,选择Device,在其中选择自己的CPU型号。 ) W2 K, E' b, c$ A0 K* s0 | 3. 可能出现core_cm.h文件不一致的问题,修改方法如下:: E& V4 N/ E( H! ^- m 1,把老的core_cm3.h去掉,删除,或者改成core_cm3.h.old。 2,Project -> Options -> General Options -> Library Configuration -> Use CMSIS,右下角的选项中选择 use CMSIS ! A( S. O) }* Z* Q! A( I( R # r* ?( o) O5 X% ] |