基于MDK编译时出现:关于core_cm3.c的错误

说明:
在MDK新创建STM32基于固件库的工程时,编译不通过,在确认文件添加没缺,PATH没问题,以及define确认填写无误,仍然编译不通过。
MDK版本:
MDK530.exe
部分报错内容:
CORE/core_cm3.c(445): error: non-ASM statement in naked function is not supported

CORE/core_cm3.c(465): error: parameter references not allowed in naked functions

CORE/core_cm3.c(479): error: non-ASM statement in naked function is not supported

CORE/core_cm3.c(499): error: parameter references not allowed in naked functions
报错内容大概的意思
c(445):错误:不支持裸函数中的非asm语句
c(465):错误:在裸函数中不允许参数引用
c(479):错误:不支持裸函数中的非asm语句
c(499):错误:裸函数中不允许参数引用
解决办法:
博主经过与之前编译成功的工程做了仔细对比发现,target选项卡中的arm compiler中选择的版本不一致
基于MDK编译时出现:关于core_cm3.c的错误
基于MDK编译时出现:关于core_cm3.c的错误
可能原因:
对比于以前成功编译的相同微处理器的工程,博主认为原因可能出在MDK版本上,以前编译成功的工程出自MDK525(或更早的版本),此次新建的工程使用的版本使用的MDK530,新版MDK可能是默认arm compiler(arm编译器)版本6编译工程,而报错的core_cm3.c文件比较久没做修改,可能不是所有的语句都符合arm编译器版本6对应的规则(或者是修复了arm编译器版本5时的Bug),导致编译时报错。
以上原因仅仅代表博主个人理解,如有错误欢迎纠正。