二、Keil——Missing Compiler Version 5 和 core_cm3.c 问题解决
Keil 丢失编译器版本5、内核文件core_cm3.c报错
目录
前言
目标:
- 在MDK5.36以后的新版本添加编译器版本5,防止旧Project编译失败
- 使用编译器版本6编译新的内核文件core_cm3.c
(本文用的MDK5.38a)
一、Missing Compiler Version 5
1. 下载 Arm Compiler 5
链接:https://pan.baidu.com/s/1k7ICgfFYV7vxng2MJe6xHw?pwd=zv2i
提取码:zv2i
2. ARMCC
下载ARMCC.rar文件,
解压后将其中的ARMCC文件复制到keil安装目录下的ARM目录里:F:\KEIL_C51\ARM
3.Keil 配置
①打开
② Folders/Extensions
③添加ARMCC文件夹
④选择版本5
二、core_cm3.c 在编译器v6下报错,无法编译
原因:
core_cm3.c过于陈旧(2009)
方法一、更换编译器版本
通过上一节,在Target使用v5的编译器就行,
方法二、更新相关内核文件
- 更换内核文件
打开安装MDK的目录:
F:\KEIL_C51\ARM\CMSIS\5.9.0\CMSIS\Core\Include
复制下面4个文件:
- 启动文件
将上面4个文件粘贴至项目工程下面的启动文件夹里,如我的是放在了Startup文件夹里
注意target要包含此文件的路径:
- 弃用(删除)旧版本的 core_cm3.c
- 启动编译器版本6
- 编译链接成功
或者(效果一样,就看使用的是什么固件库了)
下载STM32的cube软件包,如F1系列
官网下载处:https://www.st.com/en/embedded-software/stm32cube-mcu-mpu-packages.html#products
同样地,找到这4个文件,复制到项目工程下的启动文件夹内。
路径:STM32Cube_FW_F1_V1.8.0\Drivers\CMSIS\Include
总结
- 若用的是旧版本的core_cm3.c ,就使用编译器v5编译工程;
- 若想用编译器v6,就更新4个相关的内核文件:
core_cm3.h、cmsis_version.h、cmsis_compiler.h、cmsis_armclang.h
(CMSIS:Cortex Microcontroller Software Interface Standard,ARM Cortex™ 微控制器软件接口标准)