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

    文章

    8615

    浏览量

    361316
  • 编译器
    +关注

    关注

    1

    文章

    1564

    浏览量

    48531
  • MDK
    MDK
    +关注

    关注

    4

    文章

    208

    浏览量

    31754
收藏 人收藏

    评论

    相关推荐

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

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

    编译器的优化选项

    一个程序首先要保证正确性,在保证正确性的基础上,性能也是一个重要的考量。要编写高性能的程序,第一,必须选择合适的算法和数据结构;第二,应该编写编译器能够有效优化以转换成高效可执行代码的源代码,要做到
    的头像 发表于 11-24 15:37 361次阅读
    <b class='flag-5'>编译器</b>的优化选项

    MDK编译STM32F4开发板例程很慢是为什么?

    MDK编译STM32的HAL库确实是比较慢的,如果想使得编译速度更快,可以考虑使用编译器版本6来编译
    发表于 10-24 07:53

    esp32除了用arduino编译器可以用哪个编译器

    esp32除了用arduino编译器可以用哪个编译器
    发表于 09-25 06:13

    Keil修改ARM编译器及配置方法

    Keil MDK自 V5.36 版本之后,默认就不带 Arm Compiler V5版本编译器。如果需要使用 V5 版本编译器,就需要自己下载并安装。
    发表于 09-19 10:41 1800次阅读
    Keil修改ARM<b class='flag-5'>编译器</b>及配置方法

    ARM编译器优化版本1.0

    ARM编译器armcc可以优化您的代码以实现小代码和高性能。 本教程介绍了编译器执行的主要优化技术,并解释了如何控制编译器优化。 本教程假定您已经安装并许可了ARM DS-5 Deve
    发表于 08-28 07:11

    ARM编译器5.06版入门指南

    的ARMLINK支持的所有功能。 如果您使用ARM编译器作为独立产品,则默认使用32位版本。 对于DS-5中的ARM编译器,链接版本取决于主机平台。 32位工具具有32位链接,64
    发表于 08-23 07:25

    Arm编译器嵌入式FuSa 6.16.2版LTS用户指南

    和ARM Keil MDK的一个组件。 或者,您可以将用于Embedded Fusa 6的ARM编译器作为独立产品使用。 用于嵌入式FUSA 6的ARM编译器支持的功能和处理
    发表于 08-18 06:42

    ARM编译器错误和警告参考指南

    可以使用命令行选项来控制编译器的诊断消息的严重性生产。 编译器通常会警告潜在的可移植性问题和其他危险。 将遗留代码(例如,旧式C)移植到ARM®时编译器,许多警告可能是据报道。使用–
    发表于 08-08 06:00

    编译器的标准生命周期

    编译器的标准生命周期
    发表于 07-05 19:32 0次下载
    <b class='flag-5'>编译器</b>的标准生命周期

    Neuron 现场编译器用户指南

    Neuron 现场编译器用户指南
    发表于 07-04 20:47 0次下载
    Neuron 现场<b class='flag-5'>编译器</b>用户指南

    SDCC-Linux下的51 MCU编译器

    SDCC (小型设备C编译器)是为8位微控制器开发的免费C编译器。尽管兼容多种不同体系结构,但SDCC C编译器更适合8051内核。 SDCC是命令行固件开发工具,含预处理器、编译器
    的头像 发表于 06-16 15:19 3298次阅读

    使用ARMClang V6版本编译器出现错误的解决方法

    很多STM32开发者使用ARM mdk IDE进行开发,我们知道ARM MDK IDE早已推出ARMClang V6版本的编译器了。不过,当我们把在V5版本经ARMCC编译通过的工程文
    的头像 发表于 06-07 12:32 2913次阅读
    使用ARMClang V6版本<b class='flag-5'>编译器</b>出现错误的解决方法

    R32C/100系列C编译器包V.1.01 C编译器用户手册

    R32C/100系列C编译器包V.1.01 C编译器用户手册
    发表于 04-28 19:54 1次下载
    R32C/100系列C<b class='flag-5'>编译器</b>包V.1.01 C<b class='flag-5'>编译器</b>用户手册

    C/C++编译器的缺省字节对齐方式

    C/C++编译器的缺省字节对齐方式为自然对界。即在缺省情况下,编译器为每一个变量或是数据单元按其自然对界条件分配空间。
    的头像 发表于 04-15 11:24 681次阅读