0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

惊爆内幕:老MDK也可以使用新编译器!

工程师 来源:逻辑思维 作者:逻辑思维 2020-10-19 14:19 次阅读

【写在前面的话】

如果说“喜新厌旧”是人类的天性,那么嵌入式程序员一定是特例——他们尤其不喜欢更换自己用惯了的工具——拿IDE来说吧,相当一部分人仍然抱着老版本的MDK迟迟不愿意更新,这里的原因很多:

“忙的要死,哪有时间去尝试新版本”

“新版本有啥特别的么?能用树状结构管理工程文件了么?”

“新编译器稳定么?”

“有破解么?”

“啥?更新了?我怎么不知道?”

Arm官网太慢了……”

“目前的代码是一坨屎山……MDK的版本没人敢动……出了事你负责?”

……

即便如此,仍然有一部分“逆行者”特别喜欢尝试全新版本的MDK——如果问起原因:“uVision万年不更新为啥要对新版本的MDK如此执着”——其回答一定是:“我想尝试最新版本的编译器”。

除此以外,还有另外一批人,他们因为某些原因(比如License),被“束缚在了”某个版本的MDK上,即便如此,他们也有一些相当合理的需求:

他们可能对当前MDK所使用的编译器版本并不满意,并迫切希望使用过去某个“久经考验”的编译器版本;

他们可能希望尝试Arm官方最新发布的编译器(例如修复了某个困扰已久的bug),但通常只有新版本的MDK才会搭载最新的编译器版本;最要命的是,一般来说新版本的MDK总是要比新版本的编译器迟到好几个月!

怎么办呢?别急,今天就为大家曝光MDK一个鲜为人知的隐藏功能。

【正文】

最近,Arm发布了Arm Compiler 6的最新版本 6.15。而最新版本的MDK也不过支持到 6.14:

那么我们如何在当前MDK版本下使用最新的 Arm Compiler 6.15 呢?

第一步:

从Arm官方网站下载最新的 Arm Compiler 6。需要特别注意的是,一定要下载 32bit 的版本(默认情况下会下载64bit的版本)

第二步:

将新的编译器安装到MDK所在的安装目录下:假设MDK被安装在“C:\Keil_v5”,则将新的编译器安装到“C:\Keil_v5\Arm\”目录下,如果有所疑问,请看截图:

第三步:

打开MDK,并通过菜单 project-》manage-》project items 打开“manage project items” 窗口:

在窗口中,切换到“Folders/Extensions”选项卡,并单击下图中红色矩形框所标记的按钮“。。.”

在弹出的对话框中,单击“Add another ARM Compiler Verison to List.。。”

选中刚刚编译器所安装的目录:

单击OK。如果编译器被正确的识别,我们将会看到它被加入到 ARM Compiler Versions 列表中:

此时,单击 Close、并关闭MDK。重新启动MDK后,我们就可以在工程的配置选项中看到新加入的Arm编译器了:

在Code Generation-》Arm Compiler 下来列表中选择新加入的编译器版本(比如这里的 6.15),立即试一下:

怎一个爽字了得!打完收工。

【结语】

其实,在这一过程中,有以下几点值得特别强调一下:

“下载 32bit 版本” 连同 “安装新编译器到 MDK 原有的安装目录下” 会“建议” 新的编译器使用 MDK 已有的License;

你的MDK最少本身也要支持Arm Compiler 6;

这些步骤仅对 Arm Compiler 有效;

除了安装最新版本的编译器,你当然也可以用来安装老版本的Arm编译器,这里同时包括 Arm Compiler 5(也就是armcc)和 Arm Compiler 6(也就是armclang);

仔细观察窗口“Manage Project Items” 窗口,你会发现,MDK实际上也支持 GCC 编译器——通过勾选 “Use GCC Compiler (GNU) for ARM projects”,并正确配置GCC编译器所在的目录来启用GCC作为MDK的当前编译器。

一旦设置成功,你会发现,平时熟悉的工程选项也变了样:

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9057

    浏览量

    366882
  • 编译器
    +关注

    关注

    1

    文章

    1618

    浏览量

    49057
  • MDK
    MDK
    +关注

    关注

    4

    文章

    209

    浏览量

    32042
收藏 人收藏

    评论

    相关推荐

    分享一个keil MDK编译信息增强工具

    今天给大家分享一个 keil MDK 编译信息增强工具:keil-build-viewer. 1 keil-build-viewer介绍 这是一个 keil 的编译信息展示增强工具,支持芯片存储
    的头像 发表于 11-14 11:01 237次阅读

    C7000优化C/C++编译器

    电子发烧友网站提供《C7000优化C/C++编译器.pdf》资料免费下载
    发表于 10-30 09:45 0次下载
    C7000优化C/C++<b class='flag-5'>编译器</b>

    Keil编译器优化方法

    我们都知道,代码是可以通过编译器优化的,有的时候,为了提高运行速度或者减少代码尺寸,会开启优化选项。
    的头像 发表于 10-23 16:35 343次阅读
    Keil<b class='flag-5'>编译器</b>优化方法

    AI编译器技术剖析

    随着人工智能技术的飞速发展,AI编译器作为一种新兴的编译技术逐渐进入人们的视野。AI编译器不仅具备传统编译器的功能,如将高级语言编写的源代码转换为机器可执行的代码,还融入了人工智能技术
    的头像 发表于 07-17 18:28 1499次阅读

    人工智能编译器与传统编译器的区别

    人工智能编译器(AI编译器)与传统编译器在多个方面存在显著的差异。这些差异主要体现在设计目标、功能特性、优化策略、适用范围以及技术复杂性等方面。以下是对两者区别的详细探讨,旨在全面解析其内在差异。
    的头像 发表于 07-17 18:19 1719次阅读

    Meta发布基于Code Llama的LLM编译器

    近日,科技巨头Meta在其X平台上正式宣布推出了一款革命性的LLM编译器,这一模型家族基于Meta Code Llama构建,并融合了先进的代码优化和编译器功能。LLM编译器的推出,标志着Meta在人工智能领域的又一重大突破,将
    的头像 发表于 06-29 17:54 1465次阅读

    SEGGER编译器优化和安全技术介绍 支持最新C和C++语言

    SEGGER编译器是专门为ARM和RISC-V微控制设计的优化C/C++编译器。它建立在强大的Clang前端上,支持最新的C和C++语言功能。 除其他外,其主要功能包括: 1) 尺寸优化:通过调整
    的头像 发表于 06-04 15:31 1410次阅读
    SEGGER<b class='flag-5'>编译器</b>优化和安全技术介绍 支持最新C和C++语言

    使用mdk编译时,提示警告的原因?

    在使用mdk编译时,提示警告..MiddlewarescJSONcJSON.c(2001): warning:#2803-D: unrecognized GCC pragma 我使用的是v5的编译器,不想使用v6,有解决办法吗
    发表于 05-27 07:02

    C语言:嵌入式开发中的关键编译器角色

    嵌入式程序开发跟硬件密切相关,需要使用C语言来读写底层寄存、存取数据、控制硬件等,C语言和硬件之间由编译器来联系,一些C标准不支持的硬件特性操作,由编译器提供。
    发表于 04-26 14:53 569次阅读
    C语言:嵌入式开发中的关键<b class='flag-5'>编译器</b>角色

    使用mdk的ac6编译器一直报错是怎么回事?

    使用mdk的ac6编译器一直报错
    发表于 04-10 06:01

    用CUBE生成STM32H743工程,用iar编译器进入硬件错误是哪里的问题?

    最近在用CUBE 生成STM32H743工程,用iar编译器进入硬件错误,用MDK就没问题,STM32H743只能用MDK吗?
    发表于 04-07 06:07

    STM32CubeMX生成FreeRTOS的MDK工程不支持AC6编译器吗?

    使用STM32CubeMX生成FreeRTOS的MDK工程,选择AC5编译器可以编译成功,选择AC6编译器有很多错误,是STM32CubeM
    发表于 03-06 08:24

    QT开发学习笔记1(安装交叉编译器

    QT安装交叉编译器
    的头像 发表于 02-18 10:02 869次阅读
    QT开发学习笔记1(安装交叉<b class='flag-5'>编译器</b>)

    Triton编译器的原理和性能

    为Torch inductor的基本组件,以合成针对GPU的高效内核。与传统库使用相比,这具有多种优势。它允许创建各种各样的融合,它可以独立调整,并且它的内存占用更小。本次演讲将介绍Triton编译器,并描述使其能够以最少的用户努力生成闪电般快速内核的过程。
    的头像 发表于 12-16 11:22 2769次阅读
    Triton<b class='flag-5'>编译器</b>的原理和性能

    TVM编译器的整体架构和基本方法

    。但是这其中去思考了一下基于FPGA加速编译器架构。在FPGA深度学习加速中,编译器除了需要自动化生成指令外,还要优化指令的结构,来
    的头像 发表于 11-30 09:36 2321次阅读
    TVM<b class='flag-5'>编译器</b>的整体架构和基本方法