Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Tools, Software and IDEs blog Arm Toolchain for Embedded: next-generation Arm C/C++ embedded compiler
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tags
  • Keil MDK
  • Arm Development Studio
  • LLVM
  • Open Source Software
  • Arm Compiler
  • Compilers
  • Software Development
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Arm Toolchain for Embedded: next-generation Arm C/C++ embedded compiler

Paul Black
Paul Black
January 9, 2025
7 minute read time.

Arm has been creating embedded C or C++ cross-compilers for over 25 years, with 6 generations being launched between 1998 and 2014. These are the reference compilers for the Arm architecture and are used in countless Arm-based embedded projects, architecture exploration, design validation, platform bring-up, library development and more.

10 years after the launch of the 6th generation compiler Arm Compiler for Embedded (perhaps better known as AC6), technology, the Arm architecture, and the needs of developers and of Arm-based embedded projects have changed. To address the needs of current and future developers creating high-performance Arm-based embedded projects, Arm is launching Arm Toolchain for Embedded (ATfE): the 7th generation Arm embedded C/C++ cross-compiler. ATfE delivers several advantages over AC6 for these projects: the toolchain is expected to be launched in April 2025, but a beta version is available now.

AC6 will continue to be enabled by licenses that enable ATfE: the compilers will be available together and will complement each other. The two compilers will appeal to different Arm-based projects: developers will be able to choose which of the compilers best suits their projects. 

Read on to discover more about ATfE, and to download the beta release.

Arm Toolchain for Embedded

In the decade since AC6 was launched, technology has hardly stood still. The Arm Architecture has grown significantly in functionality and capability. Arm-based designs have grown in complexity functionality and power, as has the software running on those designs. Development for Artificial Intelligence is now commonplace, as is the use of rich operating systems in embedded Arm-based projects. C and C++ language standards have continued to evolve. Arm and many others have continued to invest heavily in the LLVM project. The requirements on today's compilers are as different from the requirements at the launch of AC6, as the requirements for AC6 were from the requirements for the first-generation Arm embedded compiler back in 1998.

To address the challenges of growing complexity and increasing requirements and fulfill the needs of current and future developers for Arm-based embedded projects, the embedded Arm Compiler is completing the migration to LLVM started 10 years ago by AC6. The remaining proprietary components carried over from AC5 (the linker, C libraries, binutils) will be retired, and Arm will instead increase investment in the LLVM equivalents and in the Picolib C library project.

As a result, the 7th generation Arm embedded C/C++ compiler will for the first time be 100% open source. To differentiate it from AC6 and to stress that it's a complete compilation toolchain instead of just a compiler, generation 7 will be called Arm Toolchain for Embedded (ATfE).

Advantages over AC6

ATfE aims to address the needs of current and future developers working with high-end Arm-based projects. Arm Toolchain for Embedded will deliver many advantages over AC6, including:

  • Optimization is focused on performance of Arm 64-bit (AArch64) cores, and projects using the Armv8.1-M architecture. This provides benefits for complex high-performance Arm-based platforms, for example those developed for Artificial Intelligence projects.
  • ATfE will deliver a high level of compatibility with the GNU Embedded Toolchain for Arm, in particular it will support the GNU-ld linker script format. This reduces costs and overheads for projects that need to use the both ATfE and GCC, removes the need for development teams to be expert in multiple compiler standards, and eases project migration between compilers.
  • For users that do not require technical support from Arm, there will be a free-to-use edition with identical performance and functionality to the Professional commercial edition
  • ATfE will offer access to useful functionality in the LLVM project, which was impossible to deliver in AC6. An example would be security features for example code/memory sanitizers which help to address growing concerns and challenges related to cyber-security and memory safety.
  • In the future ATfE will be able to support rich operating systems for example Embedded Linux, Zephyr, and Free RTOS. This will be particularly valuable in development for Functional Safety, where for the first time Arm will be able to provide a safety-qualified compiler for projects deploying an operating system in areas for example automotive  

Editions

There will be 4 editions of Arm Toolchain for Embedded.

Arm Toolchain contains the source and build scripts for the toolchain in a GitHub repo, expected to become available in April 2025. Users who find value in building the toolchain from source, will be able to do so.

Arm Toolchain for Embedded (ATfE) will be a 100% open source toolchain, free to use for commercial and non-commercial purposes. Binaries will be built by and validated by Arm, with support through the Arm Community forum. Arm Toolchain for Embedded is expected to become available in April 2025, but a beta version is available now.

Arm Toolchain for Embedded Professional (ATfEP) will be identical in functionality and optimization to ATfE, but commercial instead of free to use. The toolchain will be enabled by User-based (UBL) licenses for Keil MDK 6, Arm Development Studio UBL Gold, and Arm Success Kits, it is expected to launch in April 2025 but a beta version is available now. ATfEP delivers additional features that are valuable to professional development teams:

  • Technical support from Arm, instead of support through the community forum. Compilers are mission-critical and highly complex (the technical reference manual for AC6 extends to over 1,000 pages), professional support from experts who understand both the toolchain and the Arm Architecture can deliver significant value
  • Through Early Access Arm Success Kits, ATfEP will provide support for future Arm cores which have not yet been announced
  • ATfEP will be able to collect local usage analytics identifying who has used the toolchain, which version they used, and how often they used it. This information is stored locally at the license server for the benefit of the user's IT/administration experts, Arm has no access to this information. This usage information is a common request from Arm Partners and helps assess toolchain usage and value delivered, collect feedback and requests to help Arm focus future development, track toolchain upgrade rollouts, ensure that any security vulnerabilities are mitigated, etc.

Arm Toolchain for Embedded FuSa (ATfEF) is the safety-qualified variant of Arm Toolchain for Embedded Professional and is expected to become available at the end of 2026. With Arm Compiler for Embedded FuSa 6.22LTS having launched in October 2024, this maintains the historical 2–3-year cadence of launches of Arm embedded compilers for safety development.

Beta version

Although the Arm Toolchain for the Embedded public launch is expected in April 2025, a beta version is available now, you are welcome to start investigating the toolchain and all feedback would be gratefully received! Although the toolchain is functional, it is at a beta stage and users should be aware of some caveats, including:

  • Restricted library variants are available. Notably only position-dependent variants are available, there is no library support for security features, there is no C++ threading support, only Precise FP support is available. The range of library variants will be expanded in future releases
  • Optimization is not mature, current performance may be lower than expected
  • Library boot code functionality is not complete. For example projects without existing bootcode will need to add functions to unpack images and initialize target memory 

The beta download package is available here, The package contains the toolchain binaries, a user and migration guide, example Arm Development Studio projects migrated from AC6, a linker script overview guide, and a script to help migration of old armasm-format assembly files.

The future of AC6

The 6.24 release scheduled for March 2025 will contain improved support for the Armv9.6-A architecture revision (following beta support for the revision in the 6.23 release) and will be the final scheduled release of AC6. We do expect further releases to be made on an approximately annual basis, but containing defect fixes only (no new architecture support, language support, optimizations, functionality and so on). 

AC6 will continue to be enabled by all the licenses that enable Arm Toolchain for Embedded Professional, users will be able to choose which of the two compilers best suits their project. This is an exact mirror of the situation for AC5 when AC6 was launched 10 years ago: AC5 development was ended but AC5 has continued to be used in existing and new projects where it is found to be more suitable than AC6.

AC6 is likely to continue to appeal to existing and new embedded projects where:

  • AC6 is already being used, and migration to another compiler is not desirable. Although migration from AC6 to Arm Toolchain for Embedded is not likely to be as complex as migration from AC5 to AC6, the libraries and linker script format are different. A migration will be necessary, and for some projects the cost and risk of that migration will not exceed the benefits of migration to Arm Toolchain for Embedded
  • There is a need for minimal code size, particularly for Armv6-M and Armv7-M projects. Optimization for Arm Toolchain for Embedded is focused on performance for AArch64 and Armv8.1-M cores: optimization for minimal code size may not always match that in AC6
  • There is value in the AC6 scatter-loading file, for management of complex non-hosted memory layouts. Arm Toolchain for Embedded adopts the GNU-ld linker script format, with no access to scatter-loading functionality
Anonymous
  • Paul Black
    Paul Black 5 months ago in reply to Reto Sonderegger

    Hi,

    MDK users will have access to both AC6 and the new toolchain. The new toolchain doesn't replace AC6 but is in addition: MDK users will be able to decide which of the two is best for their project.

    Paul.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Stam Markianos-Wright
    Stam Markianos-Wright 5 months ago in reply to Reto Sonderegger

    Hi Reto,

    No, this is only for the compiler toolchain, whereas Keil MDK (version 5) is a full IDE solution. It then uses Arm Compiler 5 or 6 (AC5 or AC6) under the hood.

    Keil MDK is instead moving towards v6 (see
    developer.arm.com/.../Keil MDK) whch integrates straight into VSCode as a plugin.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Reto Sonderegger
    Reto Sonderegger 5 months ago

    Will this be a replacement for Keil MDK?

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
Tools, Software and IDEs blog
  • GCC 15: Continuously Improving

    Tamar Christina
    Tamar Christina
    GCC 15 brings major Arm optimizations: enhanced vectorization, FP8 support, Neoverse tuning, and 3–5% performance gains on SPEC CPU 2017.
    • June 26, 2025
  • GitHub and Arm are transforming development on Windows for developers

    Pareena Verma
    Pareena Verma
    Develop, test, and deploy natively on Windows on Arm with GitHub-hosted Arm runners—faster CI/CD, AI tooling, and full dev stack, no emulation needed.
    • May 20, 2025
  • What is new in LLVM 20?

    Volodymyr Turanskyy
    Volodymyr Turanskyy
    Discover what's new in LLVM 20, including Armv9.6-A support, SVE2.1 features, and key performance and code generation improvements.
    • April 29, 2025