ARM Cortex-M
The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by Arm Holdings. These cores are optimized for low-cost and energy-efficient microcontrollers, which have been embedded in tens of billions of consumer devices. The cores consist of the Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P, Cortex-M55. The Cortex-M4 / M7 / M33 / M35P / M55 cores have an FPU silicon option, and when included in the silicon these cores are sometimes known as "Cortex-Mx with FPU" or "Cortex-MxF", where 'x' is the core number.
Overview
The ARM Cortex-M family are ARM microprocessor cores which are designed for use in microcontrollers, ASICs, ASSPs, FPGAs, and SoCs. Cortex-M cores are commonly used as dedicated microcontroller chips, but also are "hidden" inside of SoC chips as power management controllers, I/O controllers, system controllers, touch screen controllers, smart battery controllers, and sensors controllers.Though 8-bit microcontrollers were very popular in the past, Cortex-M has slowly been chipping away at the 8-bit market as the prices of low-end Cortex-M chips have moved downward. Cortex-M have become a popular replacements for 8-bit chips in applications that benefit from 32-bit math operations, and replacing older legacy ARM cores such as ARM7 and ARM9.
License
neither manufactures nor sells CPU devices based on its own designs, but rather licenses the processor architecture to interested parties. Arm offers a variety of licensing terms, varying in cost and deliverables. To all licensees, Arm provides an integratable hardware description of the ARM core, as well as complete software development toolset and the right to sell manufactured silicon containing the ARM CPU.Silicon customization
Integrated Device Manufacturers receive the ARM Processor IP as synthesizable RTL. In this form, they have the ability to perform architectural level optimizations and extensions. This allows the manufacturer to achieve custom design goals, such as higher clock speed, very low power consumption, instruction set extensions, optimizations for size, debug support, etc. To determine which components have been included in a particular ARM CPU chip, consult the manufacturer datasheet and related documentation.Some of the silicon options for the Cortex-M cores are:
- SysTick timer: A 24-bit system timer that extends the functionality of both the processor and the Nested Vectored Interrupt Controller. When present, it also provides an additional configurable priority SysTick interrupt. Though the SysTick timer is optional, it is very rare to find a Cortex-M microcontroller without it. If a Cortex-M33 microcontroller has the Security Extension option, then it has two SysTicks, one Secure and one Non-secure.
- Bit-Band: Maps a complete word of memory onto a single bit in the bit-band region. For example, writing to an alias word will set or clear the corresponding bit in the bit-band region. This allows every individual bit in the bit-band region to be directly accessible from a word-aligned address. In particular, individual bits can be set, cleared, or toggled from C/C++ without performing a read-modify-write sequence of instructions. Though the bit-band is optional, it is less common to find a Cortex-M3 and Cortex-M4 microcontroller without it. Some Cortex-M0 and Cortex-M0+ microcontrollers have bit-band.
- Memory Protection Unit : Provides support for protecting regions of memory through enforcing privilege and access rules. It supports up to eight different regions, each of which can be split into a further eight equal-size sub-regions.
- Tightly-Coupled Memory : Low-latency RAM that is used to hold critical routines, data, stacks. Other than cache, it is typically the fastest RAM in the microcontroller.
ARM Core | Cortex M0 | Cortex M0+ | Cortex M1 | Cortex M3 | Cortex M4 | Cortex M7 | Cortex M23 | Cortex M33 | Cortex M35P |
SysTick 24-bit Timer | Optional | Optional | Optional | Optional | |||||
Single-cycle I/O port | Optional | Optional | |||||||
Bit-Band memory | * | Optional | Optional | Optional | |||||
Memory Protection Unit | Optional | Optional | Optional | Optional | Optional | Optional | Optional * | ||
Security Attribution Unit and Stack Limits | Optional | Optional | Optional * | ||||||
Instruction TCM | Optional | Optional | |||||||
Data TCM | Optional | Optional | |||||||
Instruction Cache | Optional | Optional | |||||||
Data Cache | Optional | ||||||||
Vector Table Offset Register | Optional | Optional | Optional | Optional | Optional | Optional |
- Note: Most Cortex-M3 and M4 chips have bit-band and MPU. The bit-band option can be added to the M0/M0+ using the Cortex-M System Design Kit.
- Note: Software should validate the existence of a feature before attempting to use it.
- Note: Limited public information is available for the Cortex-M35P until its Technical Reference Manual is released.
- Data endianness: Little-endian or big-endian. Unlike legacy ARM cores, the Cortex-M is permanently fixed in silicon as one of these choices.
- Interrupts: 1 to 32, 1 to 240, 1 to 480.
- Wake-up interrupt controller: Optional.
- Vector Table Offset Register: Optional..
- Instruction fetch width: 16-bit only, or mostly 32-bit.
- User/privilege support: Optional.
- Reset all registers: Optional.
- Single-cycle I/O port: Optional..
- Debug Access Port : None, SWD, JTAG and SWD.
- Halting debug support: Optional.
- Number of watchpoint comparators: 0 to 2, 0 to 4.
- Number of breakpoint comparators: 0 to 4, 0 to 8.
Instruction sets
All Cortex-M cores implement a common subset of instructions that consists of most Thumb-1, some Thumb-2, including a 32-bit result multiply. The Cortex-M0 / Cortex-M0+ / Cortex-M1 / Cortex-M23 were designed to create the smallest silicon die, thus having the fewest instructions of the Cortex-M family.
The Cortex-M0 / M0+ / M1 include Thumb-1 instructions, except new instructions which were added in ARMv7-M architecture. The Cortex-M0 / M0+ / M1 include a minor subset of Thumb-2 instructions. The Cortex-M3 / M4 / M7 / M33 / M35P have all base Thumb-1 and Thumb-2 instructions. The Cortex-M3 adds three Thumb-1 instructions, all Thumb-2 instructions, hardware integer divide, and saturation arithmetic instructions. The Cortex-M4 adds DSP instructions and an optional single-precision floating-point unit. The Cortex-M7 adds an optional double-precision FPU. The Cortex-M23 / M33 add TrustZone instructions.
Arm Core | Cortex M0 | Cortex M0+ | Cortex M1 | Cortex M3 | Cortex M4 | Cortex M7 | Cortex M23 | Cortex M33 | Cortex M35P | Cortex M55 |
ARM architecture | ARMv6-M | ARMv6-M | ARMv6-M | ARMv7-M | ARMv7E-M | ARMv7E-M | ARMv8-M Baseline | ARMv8-M Mainline | ARMv8-M Mainline | Armv8.1-M |
Computer architecture | Von Neuman | Von Neumann | Von Neumann | Harvard | Harvard | Harvard | Von Neumann | Harvard | Harvard | Harvard |
Instruction pipeline | 3 stages | 2 stages | 3 stages | 3 stages | 3 stages | 6 stages | 2 stages | 3 stages | 3 stages | 4 to 5 stages |
Thumb-1 instructions | Most | Most | Most | Most | ||||||
Thumb-2 instructions | Some | Some | Some | Some | ||||||
Multiply instructions 32x32 = 32-bit result | ||||||||||
Multiply instructions 32x32 = 64-bit result | ||||||||||
Divide instructions 32/32 = 32-bit quotient | ||||||||||
Saturated instructions | Some | |||||||||
DSP instructions | Optional | Optional | Optional | |||||||
Single-Precision Floating-point instructions | Optional | Optional | Optional | Optional | Optional | |||||
Double-Precision Floating-point instructions | Optional | Optional | ||||||||
Half-Precisions | Optional | |||||||||
TrustZone instructions | Optional | Optional | Optional | Optional | ||||||
Co-processor instructions | Optional | Optional | Optional | |||||||
Helium technology | Optional | |||||||||
Interrupt latency | 16 cycles | 15 cycles | 23 for NMI 26 for IRQ | 12 cycles | 12 cycles | 12 cycles | 15 no security ext 27 security ext | TBD | TBD | TBD |
- Note: The Cortex-M0 / M0+ / M1 doesn't include these 16-bit Thumb-1 instructions: CBZ, CBNZ, IT.
- Note: The Cortex-M0 / M0+ / M1 only include these 32-bit Thumb-2 instructions: BL, DMB, DSB, ISB, MRS, MSR.
- Note: The Cortex-M0 / M0+ / M1 / M23 only has 32-bit multiply instructions with a lower-32-bit result, where as the Cortex-M3 / M4 / M7 / M33 / M35P includes additional 32-bit multiply instructions with 64-bit results. The Cortex-M4 / M7 include DSP instructions for,, multiplications.
- Note: The number of cycles to complete multiply and divide instructions vary across ARM Cortex-M core designs. Some cores have a silicon option for the choice of fast speed or small size, so cores have the option of using less silicon with the downside of higher cycle count. An interrupt occurring during the execution of a divide instruction or slow-iterative multiply instruction will cause the processor to abandon the instruction, then restart it after the interrupt returns.
- * Multiply instructions "32-bit result" Cortex-M0/M0+/M23 is 1 or 32 cycle silicon option, Cortex-M1 is 3 or 33 cycle silicon option, Cortex-M3/M4/M7/M33/M35P is 1 cycle.
- * Multiply instructions "64-bit result" Cortex-M3 is 3–5 cycles, Cortex-M4/M7/M33/M35P is 1 cycle.
- * Divide instructions Cortex-M3/M4 is 2–12 cycles, Cortex-M7 is 3–20 cycles, Cortex-M23 is 17 or 34 cycle option, Cortex-M33 is 2–11 cycles, Cortex-M35P is TBD.
- Note: The Cortex-M4 / M7 / M33 / M35P has a silicon option choice of no FPU or single-precision FPU, and the Cortex-M7 adds a third silicon option of supporting both single-precision and double-precision. If the Cortex-M4 / M7 / M33 / M35P has a FPU, then it is known as the Cortex-M4F / Cortex-M7F / Cortex-M33F / Cortex-M35PF.
- Note: The Cortex-M series includes three new 16-bit Thumb-1 instructions for sleep mode: SEV, WFE, WFI.
- Note: Interrupt latency cycle count assumes: 1) stack located in zero-wait state RAM, 2) another interrupt function not currently executing, 3) Security Extension option doesn't exist, because it adds additional cycles. The Cortex-M cores with a Harvard computer architecture have a shorter interrupt latency than Cortex-M cores with a Von Neumann computer architecture.
Group | Instr bits | Instructions | Cortex M0,M0+,M1 | Cortex M3 | Cortex M4 | Cortex M7 | Cortex M23 | Cortex M33,M35P | Cortex M55 |
16 | ADC, ADD, ADR, AND, ASR, B, BIC, BKPT, BLX, BX, CMN, CMP, CPS, EOR, LDM, LDR, LDRB, LDRH, LDRSB, LDRSH, LSL, LSR, MOV, MUL, MVN, NOP, ORR, POP, PUSH, REV, REV16, REVSH, ROR, RSB, SBC, SEV, STM, STR, STRB, STRH, SUB, SVC, SXTB, SXTH, TST, UXTB, UXTH, WFE, WFI, YIELD | ||||||||
16 | CBNZ, CBZ | ||||||||
16 | IT | ||||||||
32 | BL, DMB, DSB, ISB, MRS, MSR | ||||||||
32 | SDIV, UDIV | ||||||||
32 | ADC, ADD, ADR, AND, ASR, B, BFC, BFI, BIC, CDP, CLREX, CLZ, CMN, CMP, DBG, EOR, LDC, LDM, LDR, LDRB, LDRBT, LDRD, LDREX, LDREXB, LDREXH, LDRH, LDRHT, LDRSB, LDRSBT, LDRSH, LDRSHT, LDRT, LSL, LSR, MCR, MCRR, MLA, MLS, MOV, MOVT, MRC, MRRC, MUL, MVN, NOP, ORN, ORR, PLD, PLDW, PLI, POP, PUSH, RBIT, REV, REV16, REVSH, ROR, RRX, RSB, SBC, SBFX, SEV, SMLAL, SMULL, SSAT, STC, STM, STR, STRB, STRBT, STRD, STREX, STREXB, STREXH, STRH, STRHT, STRT, SUB, SXTB, SXTH, TBB, TBH, TEQ, TST, UBFX, UMLAL, UMULL, USAT, UXTB, UXTH, WFE, WFI, YIELD | ||||||||
DSP | 32 | PKH, QADD, QADD16, QADD8, QASX, QDADD, QDSUB, QSAX, QSUB, QSUB16, QSUB8, SADD16, SADD8, SASX, SEL, SHADD16, SHADD8, SHASX, SHSAX, SHSUB16, SHSUB8, SMLABB, SMLABT, SMLATB, SMLATT, SMLAD, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLALD, SMLAWB, SMLAWT, SMLSD, SMLSLD, SMMLA, SMMLS, SMMUL, SMUAD, SMULBB, SMULBT, SMULTT, SMULTB, SMULWT, SMULWB, SMUSD, SSAT16, SSAX, SSUB16, SSUB8, SXTAB, SXTAB16, SXTAH, SXTB16, UADD16, UADD8, UASX, UHADD16, UHADD8, UHASX, UHSAX, UHSUB16, UHSUB8, UMAAL, UQADD16, UQADD8, UQASX, UQSAX, UQSUB16, UQSUB8, USAD8, USADA8, USAT16, USAX, USUB16, USUB8, UXTAB, UXTAB16, UXTAH, UXTB16 | Optional | ||||||
SP Float | 32 | VABS, VADD, VCMP, VCMPE, VCVT, VCVTR, VDIV, VLDM, VLDR, VMLA, VMLS, VMOV, VMRS, VMSR, VMUL, VNEG, VNMLA, VNMLS, VNMUL, VPOP, VPUSH, VSQRT, VSTM, VSTR, VSUB | Optional | Optional | Optional | Optional | |||
DP Float | 32 | VCVTA, VCVTM, VCVTN, VCVTP, VMAXNM, VMINNM, VRINTA, VRINTM, VRINTN, VRINTP, VRINTR, VRINTX, VRINTZ, VSEL | Optional | Optional | |||||
TrustZone | 16 | BLXNS, BXNS | Optional | Optional | Optional | ||||
TrustZone | 32 | SG, TT, TTT, TTA, TTAT | Optional | Optional | Optional | ||||
Co-processor | 16 | CDP, CDP2, MCR, MCR2, MCRR, MCRR2, MRC, MRC2, MRRC, MRRC2 | Optional | Optional |
- Note: The single-precision FPU instructions are valid in the Cortex-M4 / M7 / M33 / M35P only when the SP FPU option exists in the silicon.
- Note: The double-precision FPU instructions are valid in the Cortex-M7 only when the DP FPU option exists in the silicon.
Deprecations
- The 32-bit ARM instruction set is not included in Cortex-M cores.
- Endianness is chosen at silicon implementation in Cortex-M cores. Legacy cores allowed "on-the-fly" changing of the data endian mode.
- Co-processor were not supported on Cortex-M cores, until the silicon option was reintroduced in "ARMv8-M Mainline" for ARM Cortex-M33/M35P cores.
- The SWP and SWPB ARM instructions don't have a similar feature in Cortex-M.
- The "BLX
" instruction doesn't exist because it was used to switch from Thumb-1 to ARM instruction set. The "BLX " instruction is still available in the Cortex-M. - SETEND doesn't exist because on-the-fly switching of data endian mode is no longer supported.
- Co-processor instructions were not supported on Cortex-M cores, until the silicon option was reintroduced in "ARMv8-M Mainline" for ARM Cortex-M33/M35P cores.
- The SWI instruction was renamed to SVC, though the instruction binary coding is the same. However, the SVC handler code is different from the SWI handler code, because of changes to the exception models.
Cortex-M0
Key features of the Cortex-M0 core are:
- ARMv6-M architecture
- 3-stage pipeline
- Instruction sets:
- * Thumb-1, missing CBZ, CBNZ, IT
- * Thumb-2, only BL, DMB, DSB, ISB, MRS, MSR
- * 32-bit hardware integer multiply with 32-bit result
- 1 to 32 interrupts, plus NMI
- Hardware integer multiply speed: 1 or 32 cycles.
Chips
- ABOV Semiconductor AC30M1x64
- Cypress PSoC 4000, 4100, 4100M, 4200, 4200DS, 4200L, 4200M
- Infineon XMC1100, XMC1200, XMC1300, XMC1400, TLE984x
- Dialog Semiconductor DA1458x, DA1468x
- Nordic nRF51
- NXP LPC1100, LPC1200
- nuvoTon NuMicro M0 Family
- Sonix SN32F700
- ST STM32 F0
- Toshiba TX00
- Vorago VA10800, VA10820
- NXP LPC4300
- Texas Instruments SimpleLink Wireless MCUs CC1310 and CC2650
Cortex-M0+
Key features of the Cortex-M0+ core are:
- ARMv6-M architecture
- 2-stage pipeline
- Instruction sets:
- * Thumb-1, missing CBZ, CBNZ, IT
- * Thumb-2, only BL, DMB, DSB, ISB, MRS, MSR
- * 32-bit hardware integer multiply with 32-bit result
- 1 to 32 interrupts, plus NMI
- Hardware integer multiply speed: 1 or 32 cycles
- 8-region memory protection unit
- Vector table relocation
- Single-cycle I/O port
- Micro Trace Buffer
Chips
- ABOV Semiconductor A31G11x, A31G12x, A31G314
- Cypress PSoC 4000S, 4100S, 4100S+, 4100PS, 4700S, FM0+
- Epson S1C31W74, S1C31D01, S1C31D50
- Holtek HT32F52000
- Microchip SAM C2, D0, D1, D2, DA, L2, R2, R3
- NXP LPC800, LPC11E60, LPC11U60
- NXP Kinetis E, EA, L, M, V1, W0
- Renesas Synergy , Synergy
- Renesas , RE01
- Silicon Labs EFM32 Zero, Happy
- ST STM32 L0, G0
- Cypress PSoC 6200
- ST WB
World's smallest computer
On 21 June 2018, the "world's smallest computer'", or computer device was announced based on the ARM Cortex-M0+ by University of Michigan researchers at the 2018 Symposia on VLSI Technology and Circuits with the paper "A 0.04mm3 16nW Wireless and Batteryless Sensor System with Integrated Cortex-M0+ Processor and Optical Communication for Cellular Temperature Measurement." The device is 1/10th the size of IBM's previously claimed world-record-sized computer from months back in March 2018, which is smaller than a grain of salt.Cortex-M1
The Cortex-M1 is an optimized core especially designed to be loaded into FPGA chips.Key features of the Cortex-M1 core are:
- ARMv6-M architecture
- 3-stage pipeline.
- Instruction sets:
- * Thumb-1, missing CBZ, CBNZ, IT.
- * Thumb-2, only BL, DMB, DSB, ISB, MRS, MSR.
- * 32-bit hardware integer multiply with 32-bit result.
- 1 to 32 interrupts, plus NMI.
- Hardware integer multiply speed: 3 or 33 cycles.
- Optional Tightly-Coupled Memory : 0 to 1 MB instruction-TCM, 0 to 1 MB data-TCM, each with optional ECC.
- External interrupts: 0, 1, 8, 16, 32.
- Debug: none, reduced, full.
- Data endianness: little-endian or BE-8 big-endian.
- OS extension: present or absent.
Chips
- Altera Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
- GOWIN Semiconductor
- Microsemi Fusion, IGLOO/e, ProASIC3L, ProASIC3/E
- Xilinx Spartan-3, Virtex-2, Virtex-3, Virtex-4, Artix-7
Cortex-M3
- ARMv7-M architecture
- 3-stage pipeline with branch speculation.
- Instruction sets:
- * Thumb-1.
- * Thumb-2.
- * 32-bit hardware integer multiply with 32-bit or 64-bit result, signed or unsigned, add or subtract after the multiply. 32-bit multiply is 1 cycle, but 64-bit multiply and MAC instructions require extra cycles.
- * 32-bit hardware integer divide.
- * saturation arithmetic support.
- 1 to 240 interrupts, plus NMI.
- 12 cycle interrupt latency.
- Integrated sleep modes.
- Optional Memory Protection Unit : 0 or 8 regions.
Chips
- ABOV Semiconductor AC33Mx128, AC33Mx064
- Actel SmartFusion, SmartFusion 2
- Analog Devices ADuCM300
- Broadcom Wi-Fi Chip BCM4319XKUBG
- Cypress PSoC 5000, 5000LP, FM3
- Holtek HT32F
- Infineon TLE9860, TLE987x
- Microchip SAM 3A, 3N, 3S, 3U, 3X
- NXP LPC1300, LPC1700, LPC1800
- ON Semiconductor Q32M210
- Realtek RTL8710
- Silicon Labs Precision32
- Silicon Labs EFM32 Tiny, Gecko, Leopard, Giant
- ST STM32 F1, F2, L1, W
- TDK-Micronas HVC4223F
- Texas Instruments F28, LM3, TMS470, OMAP 4
- Texas Instruments SimpleLink Wireless MCUs
- Toshiba TX03
- Apple A9
- CSR Quatro 5300
- Samsung Exynos 7420
- Texas Instruments F28, LM3, TMS470, OMAP 4470
- XMOS XS1-XA
- Microsemi SmartFusion2 SoC
- Altera Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
- Xilinx Spartan-3, Virtex-2, Virtex-3, Virtex-4, Artix-7
Cortex-M4
Key features of the Cortex-M4 core are:
- ARMv7E-M architecture
- 3-stage pipeline with branch speculation.
- Instruction sets:
- * Thumb-1.
- * Thumb-2.
- * 32-bit hardware integer multiply with 32-bit or 64-bit result, signed or unsigned, add or subtract after the multiply. 32-bit Multiply and MAC are 1 cycle.
- * 32-bit hardware integer divide.
- * Saturation arithmetic support.
- * DSP extension: Single cycle 16/32-bit MAC, single cycle dual 16-bit MAC, 8/16-bit SIMD arithmetic.
- 1 to 240 interrupts, plus NMI.
- 12 cycle interrupt latency.
- Integrated sleep modes.
- Optional floating-point unit : single-precision only IEEE-754 compliant. It is called the FPv4-SP extension.
- Optional memory protection unit : 0 or 8 regions.
Chips
- Analog Devices CM400 Mixed-Signal Control Processors
- Microchip SAM 4L, 4N, 4S
- NXP Kinetis K, W2
- Renesas
- Renesas ,
- Texas Instruments SimpleLink Wi-Fi CC32xx and CC32xxMOD
- Cypress , FM4
- Infineon XMC4000
- Maxim Integrated
- Microchip SAM4C
- Microchip SAM4E, SAMG5, SAMD5/E5x
- Nordic nRF52
- nuvoTon
- NXP LPC4000, LPC4300
- NXP Kinetis K, V3, V4
- Renesas
- Silicon Labs EFM32 Wonder
- ST STM32 F3, F4, L4, L4+, WB
- Texas Instruments LM4F, , MSP432, CC13x2R, CC1352P, CC26x2R
- Toshiba TX04
- NXP Vybrid VF6
- NXP i.MX 6 SoloX
- NXP i.MX 7 Solo/Dual
- Texas Instruments OMAP 5
- Texas Instruments Sitara AM5700
Cortex-M7
Key features of the Cortex-M7 core are:
- ARMv7E-M architecture.
- 6-stage pipeline with branch speculation. Longest of all ARM Cortex-M cores.
- Instruction sets:
- * Thumb-1.
- * Thumb-2.
- * 32-bit hardware integer multiply with 32-bit or 64-bit result, signed or unsigned, add or subtract after the multiply. 32-bit Multiply and MAC are 1 cycle.
- * 32-bit hardware integer divide.
- * Saturation arithmetic support.
- * DSP extension: Single cycle 16/32-bit MAC, single cycle dual 16-bit MAC, 8/16-bit SIMD arithmetic.
- 1 to 240 interrupts, plus NMI.
- 12 cycle interrupt latency.
- Integrated sleep modes.
- Optional floating-point unit : or, both IEEE-754-2008 compliant. It is called the FPv5 extension.
- Optional CPU cache: 0 to 64 KB instruction-cache, 0 to 64 KB data-cache, each with optional ECC.
- Optional Tightly-Coupled Memory : 0 to 16 MB instruction-TCM, 0 to 16 MB data-TCM, each with optional ECC.
- Optional Memory Protection Unit : 8 or 16 regions.
- Optional Embedded Trace Macrocell : instruction-only, or instruction and data.
- Optional Retention Mode for Sleep Modes.
Chips
- Microchip SAM E7, S7, V7
- NXP Kinetis KV5x, i.MX RT
- ST STM32 F7, H7
Cortex-M23
Key features of the Cortex-M23 core are:
- ARMv8-M Baseline architecture.
- 2-stage pipeline.
- TrustZone security instructions.
- 32-bit hardware integer divide.
- Stack limit boundaries.
- Hardware integer multiply speed: 1 or 32 cycles.
- Hardware integer divide speed: 17 or 34 cycles maximum. Depending on divisor, instruction may complete in fewer cycles.
- Optional Memory Protection Unit : 0, 4, 8, 12, 16 regions.
- Optional Security Attribution Unit : 0, 4, 8 regions.
- Single-cycle I/O port.
- Micro Trace Buffer .
Chips
- Gigadevice
- Microchip SAM L10, L11
- Nuvoton
- Renesas
- Renesas
Cortex-M33
Key features of the Cortex-M33 core are:
- ARMv8-M Mainline architecture.
- 3-stage pipeline.
- TrustZone security instructions.
- 32-bit hardware integer divide.
- Stack limit boundaries.
- Optional Floating-Point Unit : single-precision only IEEE-754 compliant. It is called the FPv5 extension.
- Optional Memory Protection Unit : 0, 4, 8, 12, 16 regions.
- Optional Security Attribution Unit : 0, 4, 8 regions.
- Micro Trace Buffer .
Chips
- Dialog DA1469x
- Nordic nRF91, nRF5340
- NXP LPC5500, i.MX RT600
- ST STM32 L5
- Silicon Labs Wireless Gecko Series 2
Cortex-M35P
Limited public information is currently available for the Cortex-M35P until its Technical Reference Manual is released.
Chips
The following microcontrollers are based on the Cortex-M35P core:- As of February 2020, no chips have been announced.
Cortex-M55
Key features of the Cortex-M55 core include:
- ARMv8.1-M Mainline/Helium architecture.
- 4-stage pipeline.
- Stack limit boundaries.
- Helium
- Single-Precision and Double-Precision floating-point
- Digital Signal Processing extension support
- TrustZone security extension support
- Safety and reliability support
- Coprocessor support
- Secure and Non-secure MPU with 0, 4, 8, 12, or 16 regions
- SAU with 0, 4, or 8 regions
- Instruction cache with size of 4KB, 8KB, 16KB, 32KB, 64KB
- Data cache with size of 4KB, 8KB, 16KB, 32KB, 64KB
- ECC on caches and TCMs
- 1–480 interrupts
- 3–8 exception priority bits
- Internal and external WIC options, optional CTI, ITM, and DWT
- ARM Custom Instructions
Chips
- As of February 2020, no chips have been announced.
Development tools
Documentation
The documentation for ARM chips is extensive. In the past, 8-bit microcontroller documentation would typically fit in a single document, but as microcontrollers have evolved, so has everything required to support them. A documentation package for ARM chips typically consists of a collection of documents from the IC manufacturer as well as the CPU core vendor.A typical top-down documentation tree is:
;Documentation tree
- IC manufacturer website.
- IC manufacturer marketing slides.
- IC manufacturer datasheet for the exact physical chip.
- IC manufacturer reference manual that describes common peripherals and aspects of a physical chip family.
- ARM core website.
- ARM core generic user guide.
- ARM core technical reference manual.
- ARM architecture reference manual.