Overview

When writing a C or C++ application, you'll need to compile it to machine code using a compiler toolchain. You can then run this compiled executable code on an Arm-based processor, or simulate it with a model.

Bare metal compilation

The compiler toolchain includes the following components:

  • A compiler to translate C and C++ source code into machine code.
  • An assembler to translate assembly language source code into machine code.
  • A linker to combine multiple machine code modules into a single executable file.

Available toolchains include:

  • Arm Compiler 6. The latest and most efficient Arm C/C++ compilation toolchain, based on the armclang compiler. Arm Compiler 6 maximizes the potential of Arm Cortex and Neoverse processors and architectures, from Armv6-M to Armv8-A 64-bit Arm.

    Evaluate as part of Arm Development Studio

  • Arm Compiler 5. The previous generation Arm C/C++ compilation toolchain, based on the armcc compiler. Arm Compiler 5 provides stability and superb code size for legacy projects up to and including Armv7.
  • The GNU toolchain. An open source, community-developed toolchain. The GNU toolchain provides a low-cost mechanism for developing on Arm platforms.

All these toolchains can be used standalone, from the command line, or integrated into Arm Development Studio or Keil MDK IDE environments.

Linux compilation

The common programming languages are well-supported on Arm – with most open-source tools available in packages provided by your Linux distribution. Commercial compilers for C++, C and Fortran are available from Arm in the Arm Allinea Studio.

The Arm commercial and GNU open-source compilers are tuned extensively for Arm servers and partner silicon, and are evolving rapidly. The highest performance is achieved using the most recent versions of these tools – which are not normally the default for Linux distributions. Read about some of this work in GNU GCC 8 and glibc 2.27.

Find more information on getting started with Linux compilation here.

More information about compilers and languages

"Hello World" with Arm Compiler 6

Are you looking for examples that you can follow to get you started with Arm Compiler 6?

Evaluate as part of Arm Development Studio

"Hello World" with GCC

Looking for examples you can follow to get you started with GCC?

Learn more about the Arm Compiler toolchain

The different tools in the compiler toolchain all work together to transform your source code into an executable binary that can run on an Arm-based processor. Understanding the different functions of these tools will help you to build your application successfully.