Skip to main content
Indian senior firmware architect at a Pune Cortex-M product team comparing Arm Compiler 6 and Arm Toolchain for Embedded LLVM build pipelines side-by-side

Arm Toolchain for Embedded vs Arm Compiler 6: Buyer's Guide for Indian Cortex-M Teams

GSAS Editorial · · 5 min read

Arm Toolchain for Embedded (ATfE) launched in 2025 as Arm’s LLVM-based, next-generation C/C++ compiler, Arm’s long-term replacement for Arm Compiler 6 (AC6) in standard (non-FuSa) work. For Indian Cortex-M and Cortex-R product teams the question is no longer whether to standardise on ATfE eventually, it is when. This post gives the framing; the per-team migration plan is the engagement GSAS runs with you.

GSAS is Arm’s authorized partner in India for Arm Development Tools. ATfE Professional is enabled by a User-based Licence rather than sold as a licence of its own. The ATfEP 20.1.0 release notes state that using it “requires a suitable User-based License (UBL)”, and Arm’s own launch post gives the entitlement list as Keil MDK 6, Arm Development Studio UBL Gold, and Arm Success Kits. Two conditions decide whether that applies to you today. First, the licence has to be a suitable UBL, which is Arm’s own wording. Second, Arm Development Studio 2025.0 was the first release to include ATfE Professional, so an Arm DS team on an earlier release needs to move to 2025.x or later before the toolchain is available to them. The installer can be downloaded standalone from Arm’s Product Download Hub under the ATFEP product code, so treat the download and the entitlement as separate questions. Because GSAS supplies Keil MDK and Arm Development Studio under UBL in India, the entitlement route runs through the licence you already hold with us, subject to those two conditions. What we also do is advise Indian engineering managers in Bengaluru, Hyderabad, Chennai, Pune, Mumbai, and Delhi NCR on the migration decision: when ATfE makes sense for new work, when AC6 stays the right answer (especially for FuSa programmes), and how to plan the transition without disrupting in-flight projects.

What’s the same, what’s different

Both toolchains compile C and C++ for Cortex-M, Cortex-R, and Cortex-A. Both ship from Arm with full commercial support entitlements. Both are Arm’s officially-supported toolchains for production firmware. The headline differences:

PropertyArm Compiler 6 (AC6)Arm Toolchain for Embedded (ATfE)
ArchitectureLLVM-derived (Arm-maintained branch)LLVM upstream-aligned
Compiler driverarmclangclang (Arm replaces armclang, armlink, fromelf and armar with clang, lld, llvm-objdump / llvm-objcopy and llvm-ar)
C libraryArm-provided proprietarypicolibc, with newlib / newlib-nano available as an overlay
Assemblerarmclang integrated assembler plus the legacy armasm assembler, deprecated but still shippedclang integrated assembler only, GNU-syntax
Launch year20142025
Active developmentMaintained, especially the FuSa LTS branchesForward-going feature investment
FuSa qualificationAC6 FuSa is TÜV-certified todayTalk to your Arm contact via GSAS for the ATfE FuSa roadmap, not yet shipping
Indian commercial SKUArm Compiler 6 (also via Keil MDK Professional)ATfEP (Arm Toolchain for Embedded Professional)
India procurementINR via GSAS (Arm Compiler 6, or bundled in Keil MDK / Arm DS)INR via GSAS, included with the same UBL entitlement on Keil MDK 6 or Arm DS UBL Gold. Arm Success Kits also carry it, but that hardware bundle is sold direct by Arm, not through GSAS

The single most important row in that table for safety-critical Indian programmes is the FuSa one. AC6 FuSa stays in service for safety work until ATfE FuSa ships. If your product is on an ASIL / SIL / Class-C qualification track, the buyer’s guide stops here for now: stay on AC6 FuSa.

For everyone else, read on.

Indian compiler-evaluation lab at a Bengaluru semiconductor design centre comparing the LLVM-based Arm Toolchain for Embedded with the Arm Compiler 6 baseline on side-by-side workstations with benchmark graphs

The decision matrix

ScenarioRecommendationWhy
New project, no certification, starting todayATfE ProfessionalForward-going investment, modern C/C++ standards, LLVM upstream alignment.
New project, ASIL-D / SIL-3 / SIL-4 / Class-CAC6 FuSaTÜV-certified today; the ATfE FuSa roadmap is an Arm conversation, talk to GSAS for current status before committing a programme schedule.
In-flight project on AC6, no certificationMigrate at the next natural release boundaryMigration is small effort; modern roadmap pays back over the next 3–5 years of product life.
In-flight project on AC6.16 LTS / AC6.22 LTS for FuSaStay on AC6 FuSaRe-running safety qualification is multi-month work; do it for the FuSa version change (AC6.16 → AC6.22), not the toolchain family change (AC6 → ATfE).
Cortex-A Linux toolchainUse Arm Development Studio (Gold or Gold FuSa)Arm DS Gold and Gold FuSa editions ship with ATfE Professional bundled today; the AC6 family is also available within Arm DS for teams that haven’t migrated yet.

The migration concerns Indian teams should plan for

The AC6 → ATfE move is not a drop-in for non-trivial firmware. Four areas usually drive the bulk of the migration effort:

  • armasm goes away in ATfE, and is already a dead end in AC6. ATfE replaces both AC6 assemblers with the clang integrated assembler, so armasm-syntax sources have to move to GNU syntax before you can build with it. AC6 still ships armasm, but Arm has deprecated it since the 6.19 release and it “has not been updated since Arm Compiler 6.10”: it does not support Armv8.4-A or later, Armv8.1-M or later including MVE, any version of Armv8-R, or SVE instructions, and it emits deprecation warning A1950W on every run. Treat the port as work you owe either way. Hand-written .s / .asm files in armasm syntax must move to GNU-syntax. Scope depends on how much hand-tuned assembly is in the codebase, usually small for typical Cortex-M firmware, larger for DSP / cryptographic / motor-control work.
  • Scatter-loading → LLVM linker scripts. AC6 reads Arm’s traditional scatter-loading description; ATfE moves to LLVM linker scripts. The conversion is mechanical for flat memory layouts and a real porting block for non-trivial layouts (dual-core split RAM, ECC-protected segments, position-independent code regions).
  • C library substitution. ATfE substitutes picolibc for AC6’s proprietary C library, with newlib / newlib-nano available as an overlay (Arm’s own migration notes). The behavioural delta is small for standard-conforming code; firmware that depends on Arm-proprietary library extensions or specific AC6 semihosting hooks needs porting.
  • CI/CD image rebuild. Container images that bake in the toolchain need to be rebuilt with the new compiler. Both AC6 and ATfE Professional use UBL; the activation logic is the same but the image embeds a fresh armlm install and you flush the build cache once.

Refer to Arm’s Arm Toolchain for Embedded product page on developer.arm.com for the canonical migration documentation. The per-team scoping, how big is each of the four blocks for your specific firmware, is the conversation GSAS runs with you before you commit a schedule.

What about MISRA / coding-standard conformance?

Both toolchains report similar diagnostic quality on the standard MISRA C / MISRA C++ checks; both pair well with Perforce Helix QAC and Perforce Klocwork for full-coverage MISRA conformance scanning. The compiler is rarely the limiting factor in Indian MISRA programmes; the static-analysis tool is. The AC6 → ATfE migration doesn’t change that workflow.

What about CMSIS-Pack and the Keil MDK ecosystem?

The CMSIS-Pack toolchain (cpackget, csolution.yml, cbuild) is compiler-agnostic. It works with AC6, with ATfE, with GCC, and with IAR, the pack format names the toolchain explicitly and the build system selects the right compiler. For Indian teams using Keil MDK v6, the move from AC6 to ATfE inside the same MDK installation is a configuration change, not a tool replacement.

What to do this quarter

If you are an Indian engineering manager evaluating an AC6 → ATfE move:

  1. Confirm whether you have a FuSa-locked dependency. If yes, stay on AC6 FuSa; come back to this guide when ATfE FuSa ships.
  2. Count your armasm exposure. This is the cheapest first signal of migration scope.
  3. Run a pilot build on a non-production branch of one product using the ATfE Professional entitlement your existing UBL already carries. The smoke-test surfaces most porting issues in a few days.
  4. Check your existing UBL entitlement and your Arm DS version before you budget anything. Per Arm, ATfE Professional is enabled by a suitable User-based Licence: Keil MDK 6, Arm Development Studio UBL Gold, or an Arm Success Kit. There is one condition worth checking first: Arm Development Studio 2025.0 was the first release to include ATfE Professional, so a team still on an earlier Arm DS release (2022.0 Gold, for example) needs to move to a 2025.x or later release before the toolchain is available to them, even though the product code they hold is the right one. UBL provisioning, CI/CD migration, and the firewall + cache gotchas are the same conversation GSAS has weekly with Indian teams running AC6 and Keil MDK.

Talk to GSAS about your AC6 / Keil MDK / FuSa setup → | Arm Toolchain for Embedded, Arm’s product page

GSAS Micro Systems is Arm’s authorized partner in India for Arm Development Tools, across Bengaluru, Hyderabad, Chennai, Pune, Mumbai, Delhi NCR, and Visakhapatnam. ATfE Professional is enabled by the same UBL entitlement as Keil MDK 6 and Arm Development Studio UBL Gold, both of which GSAS supplies in India.

Interested in Arm tools?

Talk to our application engineers for personalized tool recommendations.

Stay in the Loop

Get monthly compliance updates, product insights, and engineering best practices delivered to your inbox.