摘要: 本文主要对Arm Compiler 6进行介绍。
关键字:Arm Compiler 6、编译器、链接器、映射
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版本,如下所示:
Standard C | GNU C | Standard C++ | GNU C++ |
c90 | gnu90 | c++98 | Gnu++98 |
c99 | gnu99 | c++03 | Gnu++03 |
c11 [COMMUNITY] | gnu11[COMMUNITY] | c++11 | Gnu++11 |
c++14 | Gnu++14 | ||
c++17[COMMUNITY] | Gnu++17[COMMUNITY] |
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 格式,用于程序烧写。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
关于九游会J9电子
九游会J9电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。
20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。九游会J9电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。
欢迎关注“九游会J9电子”公众号
了解更多研发工具软件知识