为了台式机和本本的统一,将台式机上的低版本IAR升级到了高版本(6.3版),用6.3版的打开原来的工程进行编译,突地冒出一堆错:
Evaluation\arm\inc\c\intrinsics.h") Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned long C:\Users\Administrator\Desktop\Heater_Project\Libraries\CMSIS\Core\CM3\core_cm3.h 1104 __get_MSP(void)" (declared at line 50 of "C:\Program Files\IAR Systems\Embedded Workbench 6.3Evaluation\arm\inc\c\intrinsics.h")
仔细一看恍然大悟,记得之前装6.1版时也出现过这个问题,当时把IAR安装目录下的Evaluation\arm\inc\c\intrinsics.h文件用低版本的替代了,现在出现这个问题就知道如何解决了。
参考相关的资料:新版本的EWARM本身已经包含了core_cm3.h,core_cm3.C。
此问题的解决方法3步走:
1、找到这两个文件所在的文件夹,在文件夹里面删除掉。
2、打开工程,在左边工程管理栏中的CMSIS目录下,移除CORE_CM3.C。
3、在工程OPTION选项卡中,如下图点选USE CMSIS。
重新编译,OK!
其实这个问题ST官网早就有解决方案,所以建议大家有问题先上官网找答案。。。