armhub.dev
Cortex-M · 24 pages
Cortex-M

The Cortex-M lineup

Every Cortex-M core from M0 to M85 — what changed, what it costs, when to pick it.

6 min read · 1,427 wordsupdated · May 12, 2026

The Cortex-M family spans almost two orders of magnitude in performance, from ~12k-gate M0 cores fit for power-budget-constrained sensors all the way to the superscalar M85 running edge ML inference. The trick is matching a core to the product.

Cortex-M lineup — quick reference
Lineage span
2009 (Cortex-M0) through 2022 (Cortex-M85); ARMv6-M to ARMv8.1-M
Smallest
Cortex-M0 — ~12k gates, ARMv6-M, 0.84 DMIPS/MHz, no MPU on most implementations
Largest
Cortex-M85 — dual-issue, branch-predicted, Helium-equipped, 4.75 CoreMark/MHz, PACBTI
TrustZone tier
Cortex-M23 (Baseline) and M33/M35P/M52/M55/M85 (Mainline) — v8-M cores
Vector tier (Helium / MVE)
Cortex-M52, M55, M85 — v8.1-M only
FPU tier
M4F (single-prec), M7 (single or double, synthesis-time), M33 (single, optional), M55/M85 (Helium-FP variant)
Cache tier
M7 only (L1 I+D, 4-64 KB each); no other Cortex-M ships caches
FPGA-only
Cortex-M1 (ARMv6-M soft core for Xilinx / Altera fabrics)
Discontinued / very rare
Cortex-M35P (M33 with physical countermeasures, niche)
Cortex-M lineup
sort:
CoreArchPipeDMIPSFPUDSPMPUTZMVENotes
Cortex-M0ARMv6-M3-stage0.84/MHz—Subset of Thumb-2.
Cortex-M0+ARMv6-M2-stage0.95/MHz—Single-cycle I/O port.
Cortex-M23ARMv8-M Baseline2-stage0.99/MHz—Secure & non-secure worlds.
Cortex-M3ARMv7-M3-stage1.25/MHz—The classic mid-range core.
Cortex-M33ARMv8-M Mainline3-stage1.50/MHzSPUsed in nRF53, STM32L5/U5.
Cortex-M4ARMv7E-M3-stage1.25/MHzSPMost popular general-purpose MCU core.
Cortex-M55ARMv8.1-M4-stage1.6/MHzSP/DP4–5× DSP/ML uplift vs. M4.
Cortex-M7ARMv7E-M6-stage2.14/MHzSP/DPUsed in i.MX RT, STM32H7.
Cortex-M85ARMv8.1-M7-stage3.0/MHzSP/DPi.MX RT700, Renesas RA8.

Quick selector

  • Battery-powered sensor, microamp budget → Cortex-M0+ or M23
  • General-purpose firmware, plenty of headroom → Cortex-M4 (or M33 if you need TrustZone)
  • DSP / audio / motor control → Cortex-M4 (DSP) or Cortex-M7 (more memory + caches)
  • Networking, USB host, multi-protocol stacks → Cortex-M7
  • Edge ML, voice activation, sensor fusion → Cortex-M55 or M85 (Helium)
  • Automotive ECU with ASIL-B / ASIL-D → look at Cortex-R, not Cortex-M

Generational shifts

v6-M → v7-M (M0/M0+ → M3)

The jump from Cortex-M0+ to M3 is the biggest in the lineup. M3 gains the full Thumb-2 ISA (~150 more instructions), hardware divide, bit-banding, and the full 256-priority NVIC. Performance roughly doubles per MHz. If you're choosing between an M0+ and an M3 at the same clock, the M3 will out-perform it on almost any non-trivial code.

v7-M → v7E-M (M3 → M4)

Adds DSP (SIMD on packed 8/16-bit lanes in 32-bit registers) and optional single-precision FPU. Same pipeline, same NVIC, same memory model — drop-in for most code. Costs ~30% more silicon area than M3.

v7E-M scalar → v7E-M superscalar (M4 → M7)

Cortex-M7 widens to a 6-stage dual-issue pipeline, adds L1 I+D caches, ITCM/DTCM tightly coupled memories, and double-precision FPU. ~70% faster per MHz than M4. The trade-off: caches make timing analysis harder and bring coherency questions back into the picture (DMA needs invalidation/cleanup).

v7E-M → v8-M (M4 → M33)

Same approximate scalar performance, but adds TrustZone-M, stack-limit registers, and a refreshed exception model. The big reason to pick M33 over M4 is when you need attestable secure boot and key isolation.

v8-M → v8.1-M (M33 → M55 / M85)

Adds Helium / MVE (vector extension), low-overhead loops, PACBTI. M85 also bumps the scalar pipeline to 7-stage dual-issue and ships with branch prediction. For non-vector code, M85 is ~2× M33; for DSP/ML, M55 alone is ~4–5× M4.

What about Cortex-M1, M7TCM, M35P, M52?

  • Cortex-M1 — an FPGA-optimised Cortex-M (ARMv6-M). Rarely used outside Xilinx soft-core designs.
  • Cortex-M35P — a Cortex-M33 with added physical security countermeasures (tamper, anti-side-channel). Niche secure-element use.
  • Cortex-M52 — a baby sibling of M55 (2023): Helium + TrustZone in a smaller footprint, aimed at high-volume IoT.
  • Cortex-M7 + double-precision — note that on M7 you can configure single-only or single+double FPUs; vendors choose at synthesis time.

Bus and system width

All Cortex-M cores have a 32-bit AHB interface. Higher-end cores (M7, M55, M85) have separate buses for instruction/data/system, allowing simultaneous flash fetch + SRAM data access — critical for sustaining their higher IPC.

Comprehensive feature matrix

The table below captures every commercially relevant Cortex-M with its key architectural traits and typical clock targets. Use it as the single source of truth when scoping a new chip.

CoreYearISAPipelineFPUDSPMVE / HeliumTrustZoneTypical clockDMIPS/MHzCoreMark/MHzTarget market
Cortex-M02009ARMv6-M3-stage in-ordernonononoup to 50 MHz0.842.33Sensor, BLE peripheral, cost-down
Cortex-M0+2012ARMv6-M2-stage in-ordernonononoup to 80 MHz0.952.46Ultra-low-power, secondary core
Cortex-M12007ARMv6-M3-stage in-ordernonononoup to 200 MHz (FPGA)0.81.85FPGA soft core (Xilinx, Altera)
Cortex-M32004ARMv7-M3-stage in-order, branch specnonononoup to 120 MHz1.253.34Mainstream MCU
Cortex-M42010ARMv7E-M3-stage in-order, branch specoptional singleyesnonoup to 200 MHz1.253.42Mainstream + DSP
Cortex-M72014ARMv7E-M6-stage dual-issue, L1 I+Dsingle or doubleyesnonoup to 600 MHz (crossover)2.145.04High-perf MCU, crossover
Cortex-M232016ARMv8-M Baseline2-stage in-ordernononoyesup to 80 MHz0.982.5Low-power + secure
Cortex-M332016ARMv8-M Mainline3-stage in-orderoptional singleoptionalnoyesup to 200 MHz1.504.02Secure mainstream
Cortex-M35P2018ARMv8-M Mainline3-stage in-orderoptional singleoptionalnoyesup to 150 MHz1.504.02Niche, physical security
Cortex-M522023ARMv8.1-M3-stage in-order, LOLsingleyesyes (MVE-I or -F)yesup to 200 MHz1.64.1High-volume edge ML / IoT
Cortex-M552020ARMv8.1-M4-stage in-order, LOL, MVEsingleyesyes (MVE-I or -F)yesup to 500 MHz1.64.4Edge ML, voice, vision
Cortex-M852022ARMv8.1-M7-stage dual-issue, LOL, MVE, branch predsingleyesyes (MVE-I or -F)yesup to 600+ MHz3.06.28High-end edge ML, Cortex-A7 replacement

A few notes the table can't show:

  • CoreMark/MHz numbers are ARM-reported best cases. Real silicon at production clocks runs roughly 10-20% lower due to flash wait states and memory bandwidth.
  • Cortex-M52 and M55 ship the same Helium ISA but M52 trades clock speed for area; M52 is the volume part and M55 the performance part.
  • Cortex-M0 versus M0+: the M0+ is faster per cycle (2-stage pipeline halves branch penalty) and ships with optional MPU and bit-banding (very rare). Most M0+ silicon runs at the same clock as the equivalent M0.
  • Cortex-M7 is the only core with caches. This makes timing analysis harder (cache misses are stochastic) and brings back coherency concerns (the D-cache is not coherent with DMA — you invalidate/clean by hand around every DMA buffer).

Choosing across vendors at each tier

Because almost every vendor makes parts at multiple Cortex-M tiers, the practical selection question is "which vendor's M4 / M33 / M7 should I use?" The pragmatic guidance:

  • Cortex-M0 / M0+ — STM32C0/G0 for cost, RP2040 for hobby and PIO use, Nordic nRF52810 for BLE peripherals. SAM D21 if you want SERCOM flexibility.
  • Cortex-M3 — STM32F1 / F2 still dominate volume. Avoid for greenfield; the M3 ecosystem is in maintenance.
  • Cortex-M4F — STM32F4 / G4 / L4 are the gold standard. NXP Kinetis K and i.MX RT500-M4 helper variants for industrial. SAM E54 if you need Ethernet + CAN-FD in one part. Tiva TM4C129 if you have legacy.
  • Cortex-M7 — STM32H7 dominates the mainstream M7 market. NXP i.MX RT for crossover (XIP + cache, no internal flash). SAM E70/V71 for AEC-Q100 automotive M7.
  • Cortex-M23 — STM32L5/U5 (Baseline-class M33 actually), Nordic nRF54L, SAM L11. Rarely picked solo; usually one half of a dual-core M33+M23.
  • Cortex-M33 — STM32U5 / U0, Nordic nRF54L / nRF5340, NXP LPC55Sxx / MCX-N, RP2350, EFR32xG24. Most diverse tier in the lineup.
  • Cortex-M55 / M85 — STM32N6, NXP RT700, Renesas RA8M1, Alif Semiconductor Ensemble. Small but growing.

Future-proofing — what's likely to change

The Cortex-M roadmap as of 2025-2026 shows three trends:

  1. TrustZone becomes mandatory for any new design. Pure v7-M parts (M3, M4, M7) are increasingly limited to legacy and ultra-cost-sensitive niches.
  2. Helium-equipped cores spread downward. M52 (2023) brought MVE to a mid-range price point; volume MCUs at this tier will be common by 2026-2027.
  3. NPUs become a peripheral. Rather than relying on Helium alone, vendors integrate dedicated NPU IP (NXP eIQ Neutron, ST NPU on STM32N6, ARM Ethos-U55/U65). The Cortex-M core's role becomes "secure boot, control plane, NPU dispatch."

For a senior engineer scoping a 10-year product, the safest bet today is Cortex-M33 (or M52 if you want vector headroom). Cortex-M85 is the right pick when you specifically need its dual-issue scalar performance and either Helium or NPU dispatch on the same die.

Cross-references