大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是在MDK开发环境下自定义安装与切换不同编译器版本的方法

  Keil MDK 想必是嵌入式开发者最熟悉的工具之一了,自 2005 年 Arm 公司收购 Keil 公司之后,MDK 就走上了发展快车道,从 v2.50a 一路狂奔到现在最新的 v5.40, 累计有 75 个版本。

  伴随着 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 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主页知乎主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:在MDK开发环境下自定义安装与切换不同编译器版本的方法的更多相关文章

  1. 痞子衡嵌入式:在MDK开发环境下将关键函数重定向到RAM中执行的几种方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在MDK开发环境下将关键函数重定向到RAM中执行的几种方法. 这个关键函数重定向到 RAM 中执行系列文章,痞子衡已经写过 <IA ...

  2. 痞子衡嵌入式:在IAR开发环境下为工程开启CRC完整性校验功能的方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下为工程开启CRC完整性校验功能的方法. CRC校验在嵌入式领域里的应用非常广,比如在通信领域,CRC检验值可以作为数据 ...

  3. 痞子衡嵌入式:其实i.MXRT下改造FlexSPI driver同样支持AHB方式去写入NOR Flash

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT下改造FlexSPI driver以AHB方式去写入NOR Flash. 痞子衡前段时间写过一篇 <串行NAND Fl ...

  4. 痞子衡嵌入式:探讨i.MXRT下FlexSPI driver实现Flash编程时对于中断支持问题

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT下FlexSPI driver实现Flash编程时对于中断支持问题. 前段时间有客户在官方社区反映 i.MXRT1170 下 ...

  5. (一)keil4 MDK 开发环境下编写裸机程序 (参考杨铸 北航) (开发板只需要连接JLNK 就行了)

    首先用的是 keil4  位与   ( F:\ARM+LINUX\MDK-ARM_v4.10.exe  ) 1. 新建工程名project 为    led circle   ,放在  我的文档\ l ...

  6. Myeclipse开发环境下文件中出现的提示错误与解决方法:The import javax.servlet cannot be resolved?

    1.开发工具:MyEclipse 2.右击项目  >>  Build Path  >>  Add External Archives (Tomcat  >>  li ...

  7. 痞子衡嵌入式:一次利用IAR自带CRC完整性校验功能的实践(为KBOOT加BCA)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是利用IAR自带CRC完整性校验功能的一次实践(为KBOOT加BCA). 痞子衡之前写过两篇关于IAR中自带CRC校验功能的文章 < ...

  8. 痞子衡嵌入式:探析开启CRC完整性校验的IAR工程生成.out和.bin文件先后顺序

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是开启CRC完整性校验的IAR工程生成.out和.bin文件先后顺序问题. 痞子衡之前写了一篇 <在IAR开发环境下为工程开启CRC ...

  9. 痞子衡嵌入式:在IAR开发环境下将关键函数重定向到RAM中执行的三种方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下将关键函数重定向到RAM中执行的三种方法. 嵌入式项目里应用程序代码正常是放在 Flash 中执行的,但有时候也需要将 ...

  10. 痞子衡嵌入式:在IAR开发环境下RT-Thread工程函数重定向失效分析

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下RT-Thread工程函数重定向失效分析. 痞子衡旧文 <在IAR下将关键函数重定向到RAM中执行的方法> ...

随机推荐

  1. Mybatis Plus 3.X版本的insert填充自增id的IdType.ID_WORKER策略源码分析

    总结/朱季谦 某天同事突然问我,你知道Mybatis Plus的insert方法,插入数据后自增id是如何自增的吗? 我愣了一下,脑海里只想到,当在POJO类的id设置一个自增策略后,例如@Table ...

  2. 【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)

    介绍一个简单的工具,用于将Redis数据从一个redis端点复制到另一个redis端点,基于原始存储库转换为.NET 8:https://github.com/LuBu0505/redis-copy- ...

  3. IntersectionObserver 实现图片懒加载

    背景 最近使用express做导航类型网站,因为这个是后端jade渲染,浏览器拿到页面之后,解析出来dom结构,导致100+的图片瞬间加载,严重浪费了宽带资源,加重服务器负担,因此打算延迟加载图片 模 ...

  4. webpack4.15.1 学习笔记(五) — 生产环境构建

    目录 生产环境构建 指定环境 生产环境构建 development和production的构建目标差异很大.dev中,需要具有实时重新加载或HMR能力的 source map 和 server.而在p ...

  5. Day 8 - 并查集、堆、set 与 map

    并查集 引入 并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素. 顾名思义,并查集支持两种操作: 合并(\(\text{Union}\ ...

  6. GitHub Star 数量前 12 的开源无代码工具

    相关文章:GitHub Star 数量前 15 的开源低代码项目 在本篇文章中,我们将探索 12 款在 GitHub 上星级排名前列的开源无代码工具. 每款工具都旨在简化和加速开发过程,但各自侧重于不 ...

  7. mysql面试汇总

    最近一直在关注mysql方面的面试题目,并且从最近的面试情况来看,mysql在java后端的面试中,肯定是必问的题目,所以这里有必要对这块的内容进行总结,大家可以根据下面的导图进行重点复习, 引擎 1 ...

  8. Git的存储原理

    目录 Git 设计原理 Git vs SVN Git 存储模型 .git 目录结构 Git 基本数据对象 Git 包文件 Git 引用 Git 设计原理 概括的讲,Git 就是一个基于快照的内容寻址文 ...

  9. 【Kafka】02 原生集群部署

    基于大数据教程的环境: 192.168.101.11 centos7-01 192.168.101.12 centos7-02 192.168.101.13 centos7-03 搭建Kafka环境需 ...

  10. 【Ubuntu】下载安装 12.04.5版本 桌面端

    下载 Download 我擦早上起来才发现自己装的是远古版本了,唉算了,反正也没见过,就当是学个东西把 [下载地址:点我访问] https://releases.ubuntu.com/?_ga=2.2 ...