该文章主要主要内容是讲解如升级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 及其以上版本的编译器上进行编译,实现方法有两种:

  1. 直接升级 MDK 为 5.26 及其以上版本;
  2. 下载安装 32 位 Arm Compiler 6。

非rtt的话,注意就是需要自行根据编译器版本号,定义arm clang相关的宏,便于兼容使用。

方法一:升级 MDK 版本至 5.26 以上

以升级 MDK 的方式增加对 Arm Compiler 6 的支持。卸载当前低版本 MDK,重新安装 5.26 版本及其以上的 MDK(详情查看 Keil MDK 安装)。

安装完成之后:在编译工程之前,选择使用 6.10.1 及其以上的编译器即可。

arm Kernel Code for Android OS 能否升级系统 怎么升级arm_编译器

方法二:下载安装 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 版本或以上版本。

arm Kernel Code for Android OS 能否升级系统 怎么升级arm_compiler_02

安装

  • 找到 MDK5 安装路径,如默认路径 C:\ Keil_V5 \ ARM ,在 ARM 文件夹下新建文件夹并重命名,例如 C:\ Keil_V5 \ ARM \ ARMCCv506u6。
  • 解压下载的文件,双击 setup.exe 进行安装,将新版本的编译器安装到上述新建目录下。

设置

1、点击

arm Kernel Code for Android OS 能否升级系统 怎么升级arm_编译器_03

Project - Manage - Project Items - Folders/Extensions. 勾选 Use ARM Compiler,点击右侧按钮 ...。(下图是官方图)

arm Kernel Code for Android OS 能否升级系统 怎么升级arm_下载安装_04

2、按照下图,单击 Add another ARM Compiler Version to List 添加新版本的编译器路径,添加新的路径之后会显示相应的新版本编译器,最后点击 Close。

arm Kernel Code for Android OS 能否升级系统 怎么升级arm_compiler_05

使用

在编译工程之前,选择使用新的编译器即可。

arm Kernel Code for Android OS 能否升级系统 怎么升级arm_编译器

常见问题

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。然后就可以编译通过了。

arm Kernel Code for Android OS 能否升级系统 怎么升级arm_arm_07

 

arm Kernel Code for Android OS 能否升级系统 怎么升级arm_编译器_08