【方辉专栏】ARM嵌入式编译器(一) Arm Compiler 6简介

0 评论

1. 简介

Arm Compiler 6是一款基于Cortex 和 Neoverse处理器的C/C++的编译工具。它与ARM架构同时开发。因此基于ARM内核的产品,小到单一传感器,大到64位设备的嵌入式裸机程序均可以使用Arm Compiler 6进行编译。

Arm Compiler 6 是Arm Development Studio和Arm Keil MDK的一个组件。您可以将 Arm Compiler  6 用作独立产品使用。Arm Compiler 6 支持的功能和支持的处理器型号取决于Arm Development Studio和Arm Keil MDK版本。

 2. 提供的工具和库

ARM Compiler 6基于LLVM-based编译架构来组织工具和库。主要包含以下组件:

2.1 armclang

armclang是编译 C/C++和GNU语言的集成编译器。支持标准的C/C++和GNU版本,如下所示:

Arm Compiler  6 基于 LLVM 构建,在文档中引用社区功能的地方,它们用 [COMMUNITY] 标识。

 2.2 armasm

仅对原来的arm语法汇编代码使用armasm,对使用GUN语法的汇编文件使用armclang。

 2.3 armlink

armlink是一个链接器,它将一个或多个目标文件的内容,与一个或多个目标库的选用部分结合起来,以生成可执行程序。

 2.4 armar

armar是一个归档器,它可以将 ELF 目标文件集收集在一起进行归档或在库中进行维护。您没有更改文件,就可以从归档中或库中将这些文件传递给链接器,不必每次使用它们时都从源代码重新编译,从而减少编译时间。您还可以将这些归档文件发给第三方应用程序开发人员,就可以在不泄露源代码的情况下和对方联合开发。

 2.5 fromelf

fromelf是一个映射转换程序可以将Arm ELF镜像转换为二进制格式。 它还可以生成关于输入映射的文本信息,如反汇编、代码大小和数据大小等。

 2.6 Arm C++ libraries

Arm C++ 库基于 LLVM libc++ :

libc++abi 库是一个运行时库,提供低级语言功能的实现。

libc++ 库提供了 ISO C++ 库标准的实现。这取决于 libc++abi 提供的函数。

 2.7 Arm C library

Arm C 库提供:

C 标准中定义的库功能的实现、C 库通用的非标准扩展。

POSIX  标准的功能、扩展的功能。

 3. 应用程序开发过程

典型的应用程序开发流程涉及以下内容:

1)编写 C/C++ 源代码。

2)为接近硬件的组件开发汇编源代码,例如中断服务例程。

3)编译C或汇编,并将所有目标文件链接在一起以生成镜像文件。

4)将镜像文件转换为普通二进制、 Hex 格式,用于程序烧写。

 

相关软件
Keil®MDK是基于ARM®的微控制器的最全面的软件开发解决方案。包括您需要创建,构建所有的组件以及调试嵌入式应用。
相关阅读