首页 > 极客资料 博客日记
痞子衡嵌入式:在MDK开发环境下自定义安装与切换不同编译器版本的方法
2024-09-10 23:30:04极客资料围观25次
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是在MDK开发环境下自定义安装与切换不同编译器版本的方法。
Keil MDK 想必是嵌入式开发者最熟悉的工具之一了,自 2005 年 Arm 公司收购 Keil 公司之后,MDK 就走上了发展快车道,从 v2.50a 一路狂奔到现在最新的 v5.40, 累计有 75 个版本。
- MDK 历史版本下载地址:https://www.keil.com/update/rvmdk.asp
伴随着 IDE 版本迭代,Arm 公司为其搭配的 C/C++ 编译器也在不断更新,光类型就有三种:RealView Compilation Tools (简称 RVCT)、Arm Compiler 5(即经典的 armcc)、Arm Compiler for Embedded(又称 Arm Compiler 6 或 armclang),这三个编译器均各自发展了很多版本。
- MDK 也支持使用标准 Arm GCC 以及 LLVM for Arm(clang) 编译器。
痞子衡之前使用了很长一段时间的 MDK v5.31,这个版本的 IDE 默认同时带了 Arm Compiler 5 和 Arm Compiler 6,用户可以按需自由选择编译器版本。痞子衡在 MDK v5.31 下(选择 Arm Compiler 5)设计了很多小工程,功能测试稳定。但是最近新安装了 MDK v5.38 之后,发现这个版本 IDE 默认仅支持 Arm Compiler 6,而痞子衡之前的小工程在 Arm Compiler 6 下编译出来功能出现了异常。
要解决这个因为不同编译器引起的兼容问题,要么在 Arm Compiler 6 下调试代码找到问题,要么干脆切回到 Arm Compiler 5。今天痞子衡就来聊聊如何在 MDK 下安装自选编译器版本:
一、切换编译器方法
随便打开一个 MDK 工程,在工程选项 Target / ARM Compiler 里能看到当前已安装的所有编译器版本,痞子衡当前的 MDK v5.38 里仅有一个默认的 Arm Compiler 6 (具体版本是 6.19),这里也同时显示了 Arm Compiler 5 选项,但是状态是 Missing,即不可用状态。
如果安装了多个编译器版本,只需要在这里切换选项即可。
二、安装自选编译器版本
现在我们尝试给 MDK v5.38 安装一个 Arm Compiler 5 版本的编译器。首先需要在如下 Arm developer 网站下载一个合适的编译器补丁包。
- 所有Arm自家编译器版本下载地址:https://developer.arm.com/documentation/ka005198/latest
痞子衡选择了最新的 Arm Compiler 5.06 update 7 (build 960) 版本(Arm 早在 2017 年便宣布了将停止对 Arm Compiler 5 的维护,该版本应该是最后一个 AC5 版本),下载后得到 ARMCompiler_506_Windows_x86_b960.zip 包。
解压 ARMCompiler_506_Windows_x86_b960.zip 包后,双击 \Installer\setup.exe 进入安装界面,将该编译器版本自定义安装到 MDK 路径下(比如 \Keil_v5\ARM\ARM_Compiler_5.06u7),与原默认 \Keil_v5\ARM\ARMCLANG 并列。
编译器补丁安装完成后,打开 MDK,进入菜单栏 Project / Manage / Project Items 配置,切换到 Folders/Extensions 选项卡,按如下操作将 Arm Compiler 5.06u7 加入到编译器列表(单击 Add another ARM Compiler Version to List 时选择 \Keil_v5\ARM\ARM_Compiler_5.06u7 路径识别)。
操作完成后,重新打开 MDK,这时候就能在工程选项编译器选择里看到新安装的 Arm Compiler 5.06u7 啦。当然你想安装多个 AC5 或者 AC6 版本也是可以的,方法一样。
至此,在MDK开发环境下自定义安装与切换不同编译器版本的方法痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”