
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 格式,用于程序烧写。