Are you starting a new project that requires safety certification?

Arm is releasing a new safety toolchain this Autumn 2021.

Learn more

Overview

Arm Compiler provides the earliest, most complete, and most accurate support for the latest architectural features and extensions of the Arm architecture. Arm Compiler supports all the latest Arm Cortex, Neoverse, and SecurCore processors, including cores that are in development.

Arm Compiler is a mature toolchain that is tailored to the development of bare-metal software, firmware, and Real-Time Operating System (RTOS) applications. Arm Compiler is used by leading companies in a wide variety of industries, including automotive (ISO 26262), consumer electronics, industrial (IEC 61508), medical (IEC 62304), networking, railway (EN 50128), storage, and telecommunications. For HPC and scientific applications, see the Linux user-space C/C++ Compiler and Linux user-space Fortran compiler.

The Arm Compiler includes many powerful space-saving and performance-enhancing optimization techniques, including low-level microarchitecture-specific instruction scheduling, unused section elimination, and aggressive Link-Time Optimization (LTO).

Components

  • armclang:
    • Is built on modern LLVM and Clang technology
    • Supports GNU syntax assembly
    • Is highly compatible with source code originally written for GCC
    • Implements specifications including ANSI/ISO C and C++, ABI for the Arm architecture, ABI for the 64-bit Arm architecture, and Arm C Language Extensions (ACLE)

  • armlink: Feature-rich dedicated embedded linker that combines objects and libraries to produce an executable

  • Arm C libraries: Optimized by Arm for performance and code density, and include the tiny MicroLib for deeply embedded applications.

  • Arm C++ libraries: Libraries based on the LLVM libc++ project

  • fromelf: Image conversion utility and disassembler

  • armar: Archiver that enables sets of object files to be collected together

Workflow

Arm Compiler workflow diagram

Use cases

Optimize resources icon black

Develop efficient software

From low-cost, memory-constrained embedded systems to high-end complex heterogeneous systems, Arm Compiler is optimized for a range of embedded workloads, with performance and code density that can be tuned for your specific target application.

Validated foundation icon black

Verify system design

Developed in collaboration with Arm processor and architecture projects, Arm Compiler is the ideal toolchain for verifying your design. Arm Compiler provides the earliest, most complete, and most accurate support for the latest Arm cores and architectural extensions.

Hardware icon black

Explore Arm architecture features

Selecting the right Arm IP is one of the most important decisions for your SoC design. Combined with Arm Flexible Access, Arm Compiler lets you evaluate which Arm solution best suits your application and market requirements.

Secuirty shield icon black

Build safety-critical code

Developing complex safety-related applications can be challenging and time-consuming. Specific releases of Arm Compiler and the C Libraries have been certified by TÜV SÜD for development to the most demanding Safety Integrity Levels (SIL), accelerating your certification process.

Security lock icon black

Develop for secure systems

Some critical systems, like Secure firmware, have specific security requirements. Arm Compiler lets you generate execute-only code, and securely interface between Secure and Non-secure software in systems that implement TrustZone for  Armv8-M.

Get Arm Compiler

Black coloured download icon

Try Arm Compiler

Get a free 30-day license for Arm Compiler in Development Studio, or through a seven-day evaluation of Keil MDK Professional.

Evaluate

Support

Community Forums

Answered Forum FAQs
  • ARM Community
0 votes 980 views 0 replies Started 10 months ago by Annie Answer this
Not answered Arm Compiler 6 ARM Errata workaround
  • Arm Compiler 6
  • Arm Compiler
0 votes 37 views 0 replies Started yesterday by MCAPP Answer this
Suggested answer Error: Unexpected qualifier id when executing assembly code in ARM Compiler 6
  • Arm Compiler 6
0 votes 240 views 1 replies Latest 3 days ago by Chris Walsh Answer this
Suggested answer How to resolve float16 NEON Instructions build errors in ArmRal 21.04? 0 votes 605 views 3 replies Latest 4 days ago by Juan Gao Answer this
Not answered Debug error using ARM Compiler 6 ?? 0 votes 129 views 0 replies Started 8 days ago by ThangND Answer this
Suggested answer Debug in DS-5 with Cyclone V SoC
  • Arm Compiler 6
  • DS-5 Debugger
0 votes 90 views 1 replies Latest 8 days ago by Ronan Synnott Answer this
Suggested answer Failed to load my program to run from SDRAM
  • DS-5 Debugger
0 votes 93 views 1 replies Latest 8 days ago by Ronan Synnott Answer this
Answered Error L6242E: Cannot link object as its attributes are incompatible with the image attribute 0 votes 1798 views 5 replies Latest 11 days ago by Ronan Synnott Answer this
Answered Error: L6218E - undefined symbol when calling functions from another projects in the same workspace 0 votes 517 views 5 replies Latest 11 days ago by Ronan Synnott Answer this
Not answered Error: Definition of nested anonymous union in packed must be __packed 0 votes 174 views 0 replies Started 14 days ago by ThangND Answer this
Not answered I'm using the ARM DS-5 IDE with the ARM 5 Compiler Toolchain. I want to use the function "fileno" in the , however, it is not declared yet (guess that this is due to the compiler toolchain I'm using). What should I do to use the function 0 votes 94 views 0 replies Started 15 days ago by ThangND Answer this
Suggested answer Is it possible to create an aarch32 linux hosted local gcc compiler from source? 0 votes 304 views 1 replies Latest 18 days ago by Przemyslaw Wirkus Answer this
Answered Forum FAQs Started 10 months ago by Annie 0 replies 980 views
Not answered Arm Compiler 6 ARM Errata workaround Started yesterday by MCAPP 0 replies 37 views
Suggested answer Error: Unexpected qualifier id when executing assembly code in ARM Compiler 6 Latest 3 days ago by Chris Walsh 1 replies 240 views
Suggested answer How to resolve float16 NEON Instructions build errors in ArmRal 21.04? Latest 4 days ago by Juan Gao 3 replies 605 views
Not answered Debug error using ARM Compiler 6 ?? Started 8 days ago by ThangND 0 replies 129 views
Suggested answer Debug in DS-5 with Cyclone V SoC Latest 8 days ago by Ronan Synnott 1 replies 90 views
Suggested answer Failed to load my program to run from SDRAM Latest 8 days ago by Ronan Synnott 1 replies 93 views
Answered Error L6242E: Cannot link object as its attributes are incompatible with the image attribute Latest 11 days ago by Ronan Synnott 5 replies 1798 views
Answered Error: L6218E - undefined symbol when calling functions from another projects in the same workspace Latest 11 days ago by Ronan Synnott 5 replies 517 views
Not answered Error: Definition of nested anonymous union in packed must be __packed Started 14 days ago by ThangND 0 replies 174 views
Not answered I'm using the ARM DS-5 IDE with the ARM 5 Compiler Toolchain. I want to use the function "fileno" in the , however, it is not declared yet (guess that this is due to the compiler toolchain I'm using). What should I do to use the function Started 15 days ago by ThangND 0 replies 94 views
Suggested answer Is it possible to create an aarch32 linux hosted local gcc compiler from source? Latest 18 days ago by Przemyslaw Wirkus 1 replies 304 views