The Architecture for the Digital World®

ARM Compiler 5

The Reference Compiler for ARM

The ARM Compiler is the only build toolchain specifically designed to optimize software running on ARM processors. It is the result of 20 years of development alongside the ARM Architecture, enabling you to profit from the extended ARM instruction set, including VFP and NEON™. The ARM Compiler toolchain incorporates a highly optimizing C/C++ compiler, assembler, linker and libraries for embedded software development.

Billions of devices containing software built with ARM tools have shipped to date, covering all embedded markets. Whether your industry is avionics, consumer electronics, mobile, industrial automation, automotive or medical, the ARM compiler can play a key role in optimizing your code.

 


Superior Performance

The highly efficient ARM Compiler invokes powerful optimization techniques such as loop unrolling, function inlining, idiom recognition, architecture-specific instruction scheduling and NEON autovectorization.


Superior Code Size Reduction

 
Dhrystone code size generated by the ARM compiler for Thumb, Thumb2 and ARM instruction sets

The ARM Compiler has a long embedded heritage, where memory space is a prized commodity. It incorporates techniques that can reduce your application footprint by up to 30% compared to other compilers. The ARM Compiler in DS-5 reduces the best code size by up to 5% compared to the RVDS 4.0 compiler.

In addition, the ARM Compiler includes an optional MicroLib C library for Cortex-M series microcontrollers, which provides up to a 50% reduction in code size compared to the full standard C library.

The MicroLib C library provides a completely C-based development environment without the need to revert to assembly language - even for interrupt service routines. This removes the need for specific knowledge of the ARM architecture.


Superior Value

Whether you are creating a modern multimedia application targeting NEON SIMD on a Cortex-A15 processor or rebuilding a 10-year-old library targeting the ARM7TDMI®, you only need a single DS-5 Professional Edition license. A single DS-5 license works with older compiler versions, making modifications to legacy code easy.

Stability, maturity and extended maintenance options make the ARM Compiler toolchain a powerful asset. Find out how you can utilize it in your projects by contacting our sales team.


Superior Convenience

The ARM Compiler supports a number of intrinsics designed to exploit functionality in ARM based devices that does not map well to C or C++. By using intrinsics instead of assembler code you make the code more readable and maintainable, while enabling the compiler to perform better code checks and optimizations.

The ARM Compiler intrinsics cover access to the NEON SIMD engine, standard peripherals and DSP instructions on Cortex-M microcontrollers and IRQ / FIQ control.

Libraries

The ARM Compiler features full support for C90, C99 and C++2003 with optimized routines for VFP, NEON, ARM and Thumb-2 which can greatly improve the performance of your code.

In addition, the ARM Compiler supports semihosting, a great feature for early stages in a new project. When using the ARM Compiler with DS-5 Debugger and enabling semihosting, you can easily transfer data between the target and host computer by using the standard C library interface. For example, you can use printf() to send a string to the debugger's console window, or fread() to read data from a file on the host.


Superior Accuracy

Many algorithms are now automatically generated from mathematical modeling software using floating point representations for data. Therefore, the accuracy of floating point representations is essential for correct operation of the generated code.

The default library selected by the ARM Compiler provides IEEE 754 floating point support. The compiler can optionally generate code to use either software floating point or any of the ARM hardware floating point units. Independent of the method used, the compiler generates full IEEE 754-compliant code. This means that your application will generate exactly the same result regardless of the target processor, simplifying software porting between devices.

 


Compiler Qualification Kit & Extended Maintenance

For policy-driven development work where standards such as IEC 61508 and ISO 26262 require you to justify the usage of your compiler toolchain, we offer an ARM Compiler Qualification Kit. With a significant body of supporting evidence derived from our development process including defect reports, C90/C99 test reports and compiler safety manual, you can increase your confidence in providing a justification argument for compliance.

Learn more about the ARM Compiler Qualification Kit »

To complement this, we also provide Extended Maintenance and Support to protect your safety-critical projects against toolchain obsolescence. Initially supported in ARM Compiler v5.04, Extended Maintenance and Support is intended to maximize the stability of a fixed branch of the compiler toolchain by providing bug fixes and patches for a minimum of 5 years.

Learn more about the ARM Compiler Extended Maintenance & Support »


Compiler updates and patches

Provided you are on a valid Support and Maintenance contract, you are entitled to download the latest updates for the ARM Compiler.


Read Next

CoreMark and Compiler Performance

Dan Owens explains how compiler performance can be enhanced through CoreMark analysis.

In Depth: Stack Protection

Find out more about how stack protection in the ARM Compiler can prevent malicious or accidental stack overflows.

Semihosting: A Life Saver During SoC and Board Bring-up

When you are writing bare-metal software and wanting to do SoC or board bring-up, semihosting is a great way of establishing and verifying a connection to your target without relying on peripheral hardware or other function SoC blocks.

 

 

 

Important Information for ds.arm.com

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

ds.arm.com uses three types of cookies: (1) those that enable the site to function and perform as required; (2) analytical cookies which anonymously track visitors while using this site; and (3) cookies which track visitors while using this site and then link to that visitor’s account once they log in or register.

If you are not happy with this use of these cookies please review our Cookie Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.