本篇博客解决两个问题,一个是编译报错CMSIS/core_cm3.c(445): error: non-ASM statement in naked function 以及keil ->target 显示 miss complier version 5 .
说明:报错CMSIS/core_cm3.c(445): error: non-ASM statement in naked function is not sup。的原因是因为你用st固件库方式编程,st固件库太老了,它是compiler version 5相对应下的。而keil V5.37以上不会默认把compiler version 5装上(只有compiler version 6).
所以两个办法,
法一:继续用compiler version 6,找到错误根源core_cm3.c文件,并删除。原因在以下两个博客中有比较详细的说明。
(MDK-ARM编译器V6和V5_keil arm 6.21编译器与5的区别-CSDN博客
固件库编程:关于core_cm3.c的错误_error: non-asm statement in naked function is not -CSDN博客
)
大概意思就是说core_cmFunc.h与core_cm3.c有函数重复定义了,删掉core_cm3.c即可。
值得指出的是,自己开发当然用新版compiler好,但当你打开其他工程师写的旧工程时还是得加入compiler version 5.
法二,加入compiler version 5 。大概流程为下载keilV5.36复制ARMCC文件至最新keil ->ARM目录下,再在keil配置加入即可。具体流程下面这篇文章写的很详细,就不赘述了。(该文包含ARMCC文件压缩包,省去安装旧版keil麻烦。)
https://zhuanlan.zhihu.com/p/561047339