Keil Logo

Arm Compiler Version 6

Learning Platform

Arm Compiler 6 is the compilation toolchain for the Arm architecture, available in all editions of MDK. It brings together the modern LLVM compiler infrastructure and the highly optimized Arm C libraries to produce performance and power optimized embedded software for the Arm architecture.

Efficient code generation, better diagnostics, and faster feature development, coupled with Arm’s compiler backend expertise, make LLVM the natural choice for the next generation of Arm Compiler.

Arm Compiler 6 makes use of Clang for the compiler front-end, whilst also retaining familiar sub-tools such as armasm, armlink, armar and fromelf.


Migrating code to Arm Compiler 6 on Keil MDK

This webinar explains how to utilize the benefits of Arm Compiler 6 and how to control the extended warnings when reusing existing application code. We also explain the advantages of link-time code optimization (LTO), which helps you to remove unused program code frequently part of hardware abstraction layers.

Note Note

Application note 298 explains how to migrate existing code to Arm Compiler 6 to make use of its benefits.


Arm Compiler 6 offers lots of benefits compared to the previous Arm Compiler 6 and other available alternatives:

  • It has the best-in-class code size for cores based on the Armv7-M architecture (Arm Cortex-M3/M4/M7).
  • It supports cores based on Armv8-M (Arm Cortex-M23 and M33) and creates secure and non-secure code for devices with TrustZone for Armv8-M.
  • It fully supports the C++14 language standard.
  • Source code created for gcc can be built and optimized with Arm Compiler 6.

Code Size Comparison

Here is an example, that has many typical components of a microcontroller application. It initializes and uses pins from a HAL library. It relies on an RTOS kernel, here Keil RTX 5. In this example, the HAL library is available in an optimized version for the three compilers. The values for gcc were created using the highest optimization, with an emphasis on size.

Code Size Comparison

Keil RTX5 Blinky on LPCXpresso5411x board with NXP LPCOpen library. C runtime for ArmCC is microlib, for GCC it is newlib-nano.

Safety Applications

Functional safety standards such as IEC 61508 and ISO 26262 require developers to justify the usage of compilers and demonstrate confidence in the selected toolchain.

Arm offers a compiler safety package to develop functional safety applications and help customers achieve certification by providing confidence-building evidence which can be used to make a toolchain justification argument.

Furthermore, Arm Run-Time System (FuSa RTS) includes the real-time operating system (RTOS) and C library that are certified for use in safety-critical  applications.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.