【写在前面的话】
如果说“喜新厌旧”是人类的天性,那么嵌入式程序员一定是特例——他们尤其不喜欢更换自己用惯了的工具——拿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的版本)
【网页链接:https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6】
第二步:
将新的编译器安装到MDK所在的安装目录下:假设MDK被安装在"C:Keil_v5",则将新的编译器安装到“C:Keil_v5Arm”目录下,如果有所疑问,请看截图:
第三步:
打开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的当前编译器。
一旦设置成功,你会发现,平时熟悉的工程选项也变了样: