Introduction

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

  1. armclang:
    1. Is built on modern LLVM and Clang technology
    2. Supports GNU syntax assembly
    3. Is highly compatible with source code originally written for GCC
    4. 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)
  2. armlink: Feature-rich dedicated embedded linker that combines objects and libraries to produce an executable
  3. Arm C libraries: Optimized by Arm for performance and code density, and include the tiny MicroLib for deeply embedded applications.
  4. Arm C++ libraries: Libraries based on the LLVM libc++ project
  5. fromelf: Image conversion utility and disassembler
  6. armar: Archiver that enables sets of object files to be collected together

Workflow

Use cases

A foundation proved to be correct.

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.

Tools and durable equipment.

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.

Shield that protects you or an item.
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.

Get Arm Compiler

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

Suggested answer Static Call Graph Details in Keil IDE 0 votes 227 views 3 replies Latest 8 hours ago by Ronan Synnott Answer this
Not answered NXP i.MXRT1064 Stack Corruption using FLEXCAN / LPUART / Systick Interrupts 0 votes 70 views 0 replies Started 19 hours ago by crevans Answer this
Suggested answer Whether Can ARM compiler 5 project call the library compiled by ARM compiler 6?
  • Arm Compiler 6
  • arm performance libraries
0 votes 591 views 2 replies Latest 7 days ago by Andy Neil Answer this
Suggested answer Uninitialized variables is getting assigned to DATA section instead of BSS section in ARM Compiler 6.6
  • Arm Compiler 6
0 votes 712 views 3 replies Latest 7 days ago by Christof Douma Answer this
Not answered arm-none-linux-gnueabihf-gcc does not detect soname libraries even though path to the directory is set. 0 votes 270 views 0 replies Started 11 days ago by sbarakad Answer this
Suggested answer Using #ifdef in scatter file in ARM compiler v6 0 votes 1066 views 8 replies Latest 11 days ago by Santhoshkumar82 Answer this
Suggested answer What are coherent observers? 0 votes 488 views 1 replies Latest 17 days ago by Martin Weidmann Answer this
Answered __scatterload function in ARM c library.
  • Arm Compiler 6
  • C
  • Memory
0 votes 4861 views 3 replies Latest 24 days ago by delinaty Answer this
Suggested answer ARM MDK 5.29 cannot input Chinese in ANSI 0 votes 1054 views 4 replies Latest 25 days ago by Fang Di Answer this
Suggested answer ldmea vs ldmfd 0 votes 966 views 2 replies Latest 27 days ago by Fleurrose Answer this
Answered arm-eabi-gdb.exe failed to launch 0 votes 1408 views 5 replies Latest 1 months ago by Jason Andrews Answer this
Not answered SECTIONS which are unhonnored in Gnu ld script for linking partial objects 0 votes 352 views 0 replies Started 1 months ago by Aby Answer this
Suggested answer Static Call Graph Details in Keil IDE Latest 8 hours ago by Ronan Synnott 3 replies 227 views
Not answered NXP i.MXRT1064 Stack Corruption using FLEXCAN / LPUART / Systick Interrupts Started 19 hours ago by crevans 0 replies 70 views
Suggested answer Whether Can ARM compiler 5 project call the library compiled by ARM compiler 6? Latest 7 days ago by Andy Neil 2 replies 591 views
Suggested answer Uninitialized variables is getting assigned to DATA section instead of BSS section in ARM Compiler 6.6 Latest 7 days ago by Christof Douma 3 replies 712 views
Not answered arm-none-linux-gnueabihf-gcc does not detect soname libraries even though path to the directory is set. Started 11 days ago by sbarakad 0 replies 270 views
Suggested answer Using #ifdef in scatter file in ARM compiler v6 Latest 11 days ago by Santhoshkumar82 8 replies 1066 views
Suggested answer What are coherent observers? Latest 17 days ago by Martin Weidmann 1 replies 488 views
Answered __scatterload function in ARM c library. Latest 24 days ago by delinaty 3 replies 4861 views
Suggested answer ARM MDK 5.29 cannot input Chinese in ANSI Latest 25 days ago by Fang Di 4 replies 1054 views
Suggested answer ldmea vs ldmfd Latest 27 days ago by Fleurrose 2 replies 966 views
Answered arm-eabi-gdb.exe failed to launch Latest 1 months ago by Jason Andrews 5 replies 1408 views
Not answered SECTIONS which are unhonnored in Gnu ld script for linking partial objects Started 1 months ago by Aby 0 replies 352 views