Keil 5.40中编译STM32的core_cm3.c报错解决方案,无需升级Compiler v5
解决keil5.40编译stm32 core_cm3.c报错问题,无需更换Compiler v5
学习nrf24l01模块时,从网友分享的链接下载了一份开源代码,编译时遇到这个问题。
当前是安装的MDK 5.40版本。还是老规矩,手动修改成V6版本。
为什么不用V5? 用网友的话回答,就是下面的截图,很有道理!
改成V6后编译:
遇事不决,可问AI !
这是AI回答的:
在使用Keil编译器编译工程时,如果遇到core_cm3.c
出现4处报错,通常是因为使用了较新的编译器版本(如Keil MDK的编译器版本6),而core_cm3.c
文件版本较老,不兼容新编译器。以下是几种解决方法:
方法一:替换文件
- 下载最新的CMSIS库:从STM32Cube_FW软件包中获取最新的CMSIS库文件,通常位于
Drivers\CMSIS\Include
目录下。 - 替换文件:将新的
core_cm3.h
文件替换掉项目中的老版本文件。 - 删除
core_cm3.c
:在工程中删除core_cm3.c
文件。
方法二:切换到旧版本编译器
如果你不想替换文件,可以选择使用Keil MDK的编译器版本5:
- 安装Keil MDK版本5:下载并安装Keil MDK版本5。
- 配置项目:在项目设置中选择使用编译器版本5。
方法三:修改项目设置
如果你使用的是Keil MDK版本6,并且不想替换文件,可以尝试以下设置:
- 修改语言选项:在项目设置中,将C/C++的语言选项调整为支持旧版本代码的设置。
选择哪种方法取决于你的具体需求和项目兼容性要求。通常,替换文件是最直接的解决方案,但可能需要确保所有依赖项都兼容新版本的CMSIS库。
当然是选择方法一啦!
找到当前工程罪魁祸首的文件位置:
找到目前常用的HAL库解压包文件位置,为了方便复制,我复制一份整个库文件到桌面:
删除core_cm3.c,替换core_cm3.h,根据编译报错选项,添加缺少的文件,添加后如下图:
还剩一个错误,是关于串口重复定义的,屏蔽就好。
大功告成,用您发财的小手点个赞再走呗~
作者:Acereng