该文章主要主要内容是讲解如升级arm编译器的两种方法【(1) 直接升级keil为新版本、(2) 或者下载高版本编译器进行安装】,基于主题 rt-thread 在 Arm Compiler 6 (armclang)进行编译。
目录
在 MDK5 上使用 Arm Compiler 6 进行编译
方法一:升级 MDK 版本至 5.26 以上
方法二:下载安装 32 位 Arm Compiler 6
下载
安装
设置
使用
常见问题
在 MDK5 上使用 Arm Compiler 6 进行编译
RT-Thread 一般 Arm Compiler5 进行编译。当然也可以在 MDK5 上使用 Arm Compiler 6.10.1 及其以上版本的编译器上进行编译,实现方法有两种:
- 直接升级 MDK 为 5.26 及其以上版本;
- 下载安装 32 位 Arm Compiler 6。
非rtt的话,注意就是需要自行根据编译器版本号,定义arm clang相关的宏,便于兼容使用。
方法一:升级 MDK 版本至 5.26 以上
以升级 MDK 的方式增加对 Arm Compiler 6 的支持。卸载当前低版本 MDK,重新安装 5.26 版本及其以上的 MDK(详情查看 Keil MDK 安装)。
安装完成之后:在编译工程之前,选择使用 6.10.1 及其以上的编译器即可。
方法二:下载安装 32 位 Arm Compiler 6
下载
以下载安装编译器的方式增加对 Arm Compiler 6 的支持(请使用 MDK5.1.2 版本或以上)。对于 Arm Compiler 6,请下载 Windows 32-bit 进行安装,以使用 MDK 许可证。
编译器下载地址:Arm Compiler for Embedded – Arm Developer,选择 6.10.1 版本或以上版本。
安装
- 找到 MDK5 安装路径,如默认路径 C:\ Keil_V5 \ ARM ,在 ARM 文件夹下新建文件夹并重命名,例如 C:\ Keil_V5 \ ARM \ ARMCCv506u6。
- 解压下载的文件,双击 setup.exe 进行安装,将新版本的编译器安装到上述新建目录下。
设置
1、点击
Project - Manage - Project Items - Folders/Extensions
. 勾选 Use ARM Compiler,点击右侧按钮 ...
。(下图是官方图)
2、按照下图,单击 Add another ARM Compiler Version to List
添加新版本的编译器路径,添加新的路径之后会显示相应的新版本编译器,最后点击 Close。
使用
在编译工程之前,选择使用新的编译器即可。
常见问题
Q1: 编译时出现 “ArmClang: Error: No license checking back-end registered with id Keil.“
A: 这是由于安装了 64-bit 的 Arm Compiler 造成的,MDK 许可证不支持 Arm Compiler 6.x 64-bit,仅支持 Arm Compiler 6.x 32-bit,请下载安装 Compiler 6.x 32-bit。
Q2: 编译出现很多问题。
A: 如果编译出现很多问题,那么很有可能就是AC6支持的不好,就先使用AC5吧
Q3: 还有就是不支持 c99 的问题。
A: AC6不识别c99的。此时可以将c99替换为-std=c99。一个示例如下:
在rtt中,这个问题一般存在于某些组件里,比如在分组device dirvers分组中的某些内容依赖c99,但是AC6不识别c99的。此时可以将c99替换为-std=c99。 右键device drivers分组,里面有个--c99设置,改为 -std=c99。然后就可以编译通过了。