惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

原创 GorgonMeducer 傻孩子 裸机思维 2020-10-15

收录于话题

#MDK2

#单片机3

#编译器9

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

【写在前面的话】


如果说“喜新厌旧”是人类的天性,那么嵌入式程序员一定是特例——他们尤其不喜欢更换自己用惯了的工具——拿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大佬文章,硬核!

 

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

 

第一步:

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

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

【网页链接:https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6】

 

第二步:

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

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

第三步:

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

 

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

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

 

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

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

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

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

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

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

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

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

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

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

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

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

 

【结语】


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

  • “下载 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的当前编译器。

     

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

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

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 


 

原创不易,

如果你喜欢我的思维、觉得我的文章对你有所启发,

请务必 “点赞、收藏、转发” 三连,这对我很重要!谢谢!

 

欢迎订阅 裸机思维

 

惊爆内幕:老MDK也可以使用新编译器——arm大佬文章,硬核!

 

收录于话题 #编译器

9个

上一篇【编译器玄学研究报告】第三期——“-O0” 就能逃出优化的魔爪么?下一篇漫谈C变量——夏虫不可语冰

上一篇:compiler插件,定义编译打包的jdk版本


下一篇:深入理解Compiler对C/C++程序的编译流程