Keil 5.40中编译STM32的core_cm3.c报错解决方案,无需升级Compiler v5

解决keil5.40编译stm32 core_cm3.c报错问题,无需更换Compiler v5

学习nrf24l01模块时,从网友分享的链接下载了一份开源代码,编译时遇到这个问题。

image-20250106132056594

image-20250106132126525

当前是安装的MDK 5.40版本。还是老规矩,手动修改成V6版本。

image-20250106132215266

为什么不用V5? 用网友的话回答,就是下面的截图,很有道理!

image-20250106133037846

改成V6后编译:

image-20250106132251777

image-20250106132331725

image-20250106132345690

遇事不决,可问AI !


这是AI回答的:

在使用Keil编译器编译工程时,如果遇到core_cm3.c出现4处报错,通常是因为使用了较新的编译器版本(如Keil MDK的编译器版本6),而core_cm3.c文件版本较老,不兼容新编译器。以下是几种解决方法:

方法一:替换文件

  1. 下载最新的CMSIS库:从STM32Cube_FW软件包中获取最新的CMSIS库文件,通常位于Drivers\CMSIS\Include目录下。
  2. 替换文件:将新的core_cm3.h文件替换掉项目中的老版本文件。
  3. 删除core_cm3.c:在工程中删除core_cm3.c文件。

方法二:切换到旧版本编译器

如果你不想替换文件,可以选择使用Keil MDK的编译器版本5:

  1. 安装Keil MDK版本5:下载并安装Keil MDK版本5。
  2. 配置项目:在项目设置中选择使用编译器版本5。

方法三:修改项目设置

如果你使用的是Keil MDK版本6,并且不想替换文件,可以尝试以下设置:

  1. 修改语言选项:在项目设置中,将C/C++的语言选项调整为支持旧版本代码的设置。

选择哪种方法取决于你的具体需求和项目兼容性要求。通常,替换文件是最直接的解决方案,但可能需要确保所有依赖项都兼容新版本的CMSIS库。


当然是选择方法一啦!

找到当前工程罪魁祸首的文件位置:

image-20250106132441504

找到目前常用的HAL库解压包文件位置,为了方便复制,我复制一份整个库文件到桌面:

image-20250106132540903

image-20250106132835387

image-20250106132849540

删除core_cm3.c,替换core_cm3.h,根据编译报错选项,添加缺少的文件,添加后如下图:

image-20250106132712551

image-20250106132912305

还剩一个错误,是关于串口重复定义的,屏蔽就好。

image-20250106132938331

大功告成,用您发财的小手点个赞再走呗~

作者:Acereng

物联沃分享整理
物联沃-IOTWORD物联网 » Keil 5.40中编译STM32的core_cm3.c报错解决方案,无需升级Compiler v5

发表回复