1.2 About ARM® Compiler
ARM Compiler enables you to build applications for the ARM family of processors from C, C++, or assembly language source.
ARM Compiler supports the
- ARMv8-A bare metal targets.
- ARMv7-A bare metal targets.
The toolchain comprises:
The compiler. This compiles C, C++, and GNU assembly language sources.
The compiler is based on LLVM and Clang technology.
LLVM is a set of open-source components that allow the implementation of
optimizing compiler frameworks.
Clang is a compiler front end for LLVM, providing support for the C and
C++ programming languages.
The legacy assembler. This assembles A32, A64, and T32 ARM syntax assembly code.
armasm for legacy ARM syntax assembly code. Use the
armclang assembler and GNU syntax for all new assembly files.
The linker. This combines the contents
of one or more object files with selected parts of one or more object
libraries to produce an executable program.
The librarian. This enables sets of ELF object
files to be collected together and maintained in archives or libraries. You can pass
such a library or archive to the linker in place of several ELF files. You can also
use the archive for distribution to a third party for further application
The image conversion utility. This can also generate textual information about
the input image, such as its disassembly and its code and data size.
- ARM C++ libraries
The ARM C++ libraries provide:
- ARM C libraries
The ARM C libraries provide:
An implementation of the library features as defined in the C and C++
Common nonstandard extensions to many C libraries.
POSIX extended functionality.
Functions standardized by POSIX.
- Rogue Wave C++ library
The Rogue Wave C++ library provides an
implementation of the standard C++ library.
Be aware of the following:
- Generated code might be different between two ARM Compiler
- For a feature release, there might be significant code generation
NoteThe command-line option descriptions and related
information in the individual ARM Compiler tools documents describe all the ARM-specific features that are
supported by ARM Compiler.
Any ARM-specific features not documented are not supported and are used at your own
risk. Although open-source clang LLVM features are
available, they are not supported by ARM and are used at your own risk. You are
responsible for making sure that any generated code using unsupported features is
You can debug the output from the toolchain with any debugger that is compatible with the
ELF and DWARF 4 specifications, such as ARM DS-5.
Check the ARM web site for updates and patches to the toolchain.