首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

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

编程知识
2024年09月10日 22:18

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是在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主页知乎主页微信公众号 平台上。

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

From:https://www.cnblogs.com/henjay724/p/18407449
本文地址: http://www.shuzixingkong.net/article/1894
0评论
提交 加载更多评论
其他文章 架构师备考的一些思考(二)
前言 以我的视野来看,部长或技术总监这种岗位还是比较难竞争的,换言之,程序员的上升空间比较窄,如果想要拿到高级岗位,最好的是工作三五年后就转项目经理,然后再往上爬。 架构师倒是也能晋升高级岗位,但就效率而言,是非常低的。就我的经验而言,架构师系的高级职位通常是技术管理一手抓,但这也代表着,责任更大,
架构师备考的一些思考(二)
在 Web 中判断页面是不是刷新
在 Web 开发中,我们经常需要区分用户是否通过刷新操作重新加载了页面。这一操作可能是由用户手动刷新(如按下 F5 键或点击浏览器刷新按钮)或通过浏览器自动重新加载。判断页面是否刷新有助于开发者优化用户体验,例如在使用 vue 的时候需要进行权限控制,就需要判断在刷新后根据登录者的权限去添加对应的路
在 Web 中判断页面是不是刷新 在 Web 中判断页面是不是刷新 在 Web 中判断页面是不是刷新
鸿蒙系统(HarmonyOS)全局弹窗实现
全局弹窗相对于自定义弹窗有以下优点: 封装更彻底,一行代码就能调用 跟组件耦合度低,只需要传入组件的UIContext对象,不需要跟自定义弹窗一样需要在组件内部实例化CustomDialogController对象 全局弹窗是鸿蒙在API 12增加的,PromptAction对象增加了openCus
鸿蒙系统(HarmonyOS)全局弹窗实现 鸿蒙系统(HarmonyOS)全局弹窗实现
Locust 进行分布式负载测试
什么是 Locust Locust 是一个开源的负载测试工具,用于测试网站和其他应用程序的性能。它通过编写 Python 脚本来定义虚拟用户的行为,模拟这些用户对目标系统发起请求。Locust 提供了一个直观的 Web 界面,允许用户实时监控测试进度和性能指标。 主要特性包括: Python 编写测
设计模式之状态模式(三分钟学会一个设计模式)
状态模式(State Pattern)的定义是这样的:类的行为是基于它的状态改变的。注意这里的状态不是狭义的指对象维护了一个“状态”字段,我们传入了不同的枚举值,对象整体的表现行为(对外方法)就改变了。而是指内部的(任意)字段如果发生了变化,那么它的状态就变了,那么它对外的表现形式就变了。它是面向对
设计模式之状态模式(三分钟学会一个设计模式)
Redis 入门 - C#|.NET Core客户端库六种选择
介绍了6款.NET系Redis客户端库:ServiceStack.Redis、StackExchange.Redis、CSRedisCore、FreeRedis、NewLife.Redis、BeetleX.Redis,各具特色,如商业支持、高性能、高并发、低延迟等,适合不同场景和需求。
Redis 入门 - C#|.NET Core客户端库六种选择 Redis 入门 - C#|.NET Core客户端库六种选择 Redis 入门 - C#|.NET Core客户端库六种选择
Redis、Nginx、SQLite、Elasticsearch等开源软件成功的原因及它们对IT技术人员的启示
引言 这些年在自研产品,对于如何做好产品进行了一些思考。随着开源软件的蓬勃发展,许多开源项目已经成为IT行业的核心组成部分。像Redis、Nginx、SQLite、Elasticsearch这些知名的开源软件,已经成为了开发者的首选工具。这些开源软件不仅在技术性能上取得了重大突破,还在社区建设、生态
论文阅读翻译之Deep reinforcement learning from human preferences
论文阅读翻译之Deep reinforcement learning from human preferences 关于 首次发表日期:2024-09-11 论文原文链接:https://arxiv.org/abs/1706.03741 论文arxiv首次提交日期:12 Jun 2017 使用KIM
论文阅读翻译之Deep reinforcement learning from human preferences