二、Keil——Missing Compiler Version 5 和 core_cm3.c 问题解决

Keil 丢失编译器版本5、内核文件core_cm3.c报错



前言

目标:

  1. 在MDK5.36以后的新版本添加编译器版本5,防止旧Project编译失败
  2. 使用编译器版本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的编译器就行,

方法二、更新相关内核文件

  1. 更换内核文件
    打开安装MDK的目录:
    F:\KEIL_C51\ARM\CMSIS\5.9.0\CMSIS\Core\Include
    复制下面4个文件:
  2. 启动文件
    将上面4个文件粘贴至项目工程下面的启动文件夹里,如我的是放在了Startup文件夹里

    注意target要包含此文件的路径:
  3. 弃用(删除)旧版本的 core_cm3.c
  4. 启动编译器版本6
  5. 编译链接成功

或者(效果一样,就看使用的是什么固件库了)
下载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

总结

  1. 若用的是旧版本的core_cm3.c ,就使用编译器v5编译工程;
  2. 若想用编译器v6,就更新4个相关的内核文件:
    core_cm3.h、cmsis_version.h、cmsis_compiler.h、cmsis_armclang.h

(CMSIS:Cortex Microcontroller Software Interface Standard,ARM Cortex™ 微控制器软件接口标准)

posted @ 2023-02-16 18:59  YI颗白菜  阅读(2303)  评论(0编辑  收藏  举报