2043年是什么年| 盆腔积液吃什么药效果好| 女性尿路感染挂什么科| 垣字五行属什么| 三大精神是什么| 客观是什么意思| 做梦买鞋是什么意思| 冰丝皱是什么面料| 为什么会气虚| 什么是洁癖| 八零年属什么生肖| 公安局跟派出所有什么区别| 便潜血阳性什么意思| 一天两包烟会导致什么后果| 银手镯变黑是什么原因| 觅食是什么意思| 乳酸脱氢酶高是什么原因| 鼻子上长痘是什么原因| 小case是什么意思| 甲虫吃什么食物| 蒙字五行属什么| 为什么长疣| 天数是什么意思| 血细胞分析能查出什么| 总胆红素高什么意思| 痛经吃什么止疼药| 劳您费心了什么意思| 乱花渐欲迷人眼是什么意思| d二聚体偏高说明什么| gd什么意思| 飞检是什么意思| ct是什么| 牙龈萎缩吃什么药| 肝内胆管结石有什么症状表现| 脸上长癣是什么原因| 胎儿胆囊偏大有什么影响| 八路军为什么叫八路军| 什么是纯爱| 痛风是什么病| 萎靡是什么意思| 回族人为什么不吃猪肉| 甲状腺看什么科| 边度什么意思| 己巳五行属什么| 家里出现蟑螂预示什么| 什么是文字狱| 痛风该吃什么药好得快| 喝黑苦荞茶有什么好处和坏处| 吃什么对肺有好处| 噤若寒蝉是什么意思| 疏肝理气吃什么药| 黄色五行属什么| 肾不好有什么症状| 做梦梦见兔子是什么意思| 吃什么长胖| 福报是什么意思| 豆芽和什么一起炒好吃| 嗓子干吃什么药| 合是什么生肖| 酸菜炒什么好吃| 莲花代表什么生肖| 什么水果糖分最高| pbg是什么意思| va是什么维生素| 司法警察是做什么的| pck是什么意思| 血液为什么是红色的| 一根长寿眉预示什么| 发什么什么大| 心机女是什么意思| 胃黏膜受损吃什么药| 过敏应该挂什么科| 什么力气| 流产是什么样子的| 姚字五行属什么| 腰疼吃什么药效果好| 肝脏的作用是什么| 酸奶什么时候喝最好| 肉鸽是什么意思| 肌肉痉挛吃什么药| 饺子什么馅儿最好吃| 洗手指征是什么| 什么是皮疹| 64年属什么生肖| 东厂是什么意思| 红花泡脚有什么好处| 中度贫血吃什么补血最快| 什么是无机盐| tc是什么| 枣什么时候成熟| 肝脏低回声意味着什么| 利福喷丁和利福平有什么区别| 全科医学科看什么病| 血糖高可以喝什么饮料| 胃病烧心吃什么药好| 冬天可以干什么| 仔细的什么| 纳采是什么意思| 咒怨讲的是什么故事| 黄体酮有什么作用| 气节是什么意思| 什么是催眠| 睡觉多梦是什么原因引起的| 莲花代表什么生肖| 吃醪糟有什么好处| 十全十美是什么意思| 口苦是什么原因| 话费为什么扣那么快| mrsa医学上是什么意思| 肺结核是什么原因引起的| 金刚钻是什么意思| 醋酸是什么面料| 男性尿道刺痛吃什么药| 脸上起疙瘩是什么原因| 治白内障用什么药最好| 为什么一生气就胃疼| 陈皮是什么| 胰腺在什么位置| 素字五行属什么| 农历七月初七俗称什么| 达芬奇发明了什么| 2003年是什么年| 我要的是什么| 心脏呈逆钟向转位什么意思| 胡萝卜吃多了有什么坏处| 胆囊壁增厚吃什么药| 朝朝暮暮是什么意思| 黑茶是什么茶| 缺钾有什么症状| 什么叫做基本工资| 球鞋ep是什么意思| 乙肝表面抗体高是什么意思| 什么牙膏最好| 李小龙属什么生肖| 火鸡面为什么那么辣| 鬼市是什么意思| hpc是什么| 电离辐射是指什么| 李嘉诚属什么生肖| 唇釉是什么| 都有什么菜好吃| 夏天结婚新郎穿什么衣服图片| 二代身份证是什么意思| 专政是什么意思| 逾期不候什么意思| 腰间盘突出压迫神经腿疼吃什么药| 孕妇缺营养吃什么补| 黑枸杞泡水后什么颜色| 孕酮低有什么症状| cho是什么意思| 喝ad钙奶有什么好处| 7月30日是什么日子| 农历六月十九是什么日子| ecom什么意思| 什么是角| 小青柑是什么茶类| 多动症是什么引起的| 身上长红疙瘩很痒是什么原因| 他不懂你的心假装冷静是什么歌| 脚后跟骨头疼是什么原因| 深圳市长什么级别| 毛囊炎长什么样| 嗓子疼发烧吃什么药| 不打破伤风针会有什么后果| 派特ct主要检查什么| 小孩放臭屁是什么原因| 灌肠为什么能通输卵管| 右手手指头麻木是什么病的前兆| 折耳猫为什么不能养| 颈椎挂什么科| 一月10号是什么星座| 金牛和什么星座最配| 下面痒吃什么消炎药| 排卵期是什么| 抗缪勒氏管激素是检查什么的| 监视是什么意思| 公园里有什么有什么还有什么| 马齿苋有什么好处| 什么叫制动| 浪迹天涯是什么生肖| 带状疱疹能吃什么| 黄脸婆是什么意思| 外阴瘙痒用什么药膏好| 吃苦瓜对身体有什么好处| 枸杞有什么作用| 肺部结节吃什么好| 鹰击长空是什么意思| 梦见已故老人是什么预兆| 小孩感冒挂什么科| 什么是口播| 217是什么意思| 早搏是什么症状| 什么叫弱视| 为什么人不会飞| 肠胃不好拉肚子吃什么药| 什么东西在倒立之后会增加一半| 脸上长粉刺是什么原因引起的| 游山玩水是什么意思| 台湾以前叫什么名字| 干咳挂什么科| 咖啡烘培度有什么区别| ws什么意思| 夏至吃什么食物| 上岸了是什么意思| s和m是什么意思啊| 正正得什么| 小孩咳嗽喝什么药| 心慌气短胸闷吃什么药| 慢性荨麻疹是什么原因引起的| 福荫是什么意思| 长期腹泻是什么病| 鸡犬不宁是什么意思| 俞伯牙摔琴谢知音摔的是什么乐器| 肾气虚吃什么中成药| 心火旺喝什么茶| 甲状腺是什么引起的原因| 0到3个月的婴儿惊吓吃什么药| 右手中指指尖麻木是什么原因| 骨折后吃什么好| 混油皮是什么意思| 子宫内膜14mm说明什么| 根管治疗后要注意什么| 鬼市是什么意思| 你要什么| 怕什么来什么| 三叉神经痛吃什么药效果好| pdl是什么意思| 血糖有点高吃什么食物好| 吃了虾不能吃什么| 大名是什么意思| 十一是什么意思| 髂胫束在什么位置| 心动过缓是什么意思| 流星雨是什么意思| 着凉嗓子疼吃什么药| 什么大什么功| 肾素高说明什么| 为什么会得霉菌感染| 什么是大三阳和小三阳| 中专什么时候报名| 突然尿多是什么原因| 肌酐低什么原因| 10点是什么时辰| 爱之深恨之切是什么意思| 天天睡觉做梦是什么原因| 福禄寿什么意思| 什么食物含有维生素d| 什么是双减| 脑白质疏松是什么意思| 什么杯子不能装水| 小鹿乱撞是什么意思| 变质是什么意思| 鹦鹉代表什么生肖| 出汗吃什么药| 光明磊落是什么生肖| 领衔是什么意思| 多动症是什么原因造成的| 颇负盛名的颇是什么意思| 臭酸是什么| 脚心起水泡是什么病症| 接地气是什么意思| 暗经是什么意思| 尿毒症是什么| 人参有什么作用| 百度Jump to content

如松:财富大挪移,谁将成为未来几十年的新赢家?

From Wikipedia, the free encyclopedia
ARM Cortex-M0 and Cortex-M3 microcontroller ICs from NXP and Silicon Labs (Energy Micro)
Die from a STM32F100C4T6B IC.
24 MHz ARM Cortex-M3 microcontroller with 16 KB flash memory, 4 KB RAM. Manufactured by STMicroelectronics.
百度 土字生肖有钱收是什么生肖

The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by ARM Limited. These cores are optimized for low-cost and energy-efficient integrated circuits, which have been embedded in tens of billions of consumer devices.[1] Though they are most often the main component of microcontroller chips, sometimes they are embedded inside other types of chips too. The Cortex-M family consists of Cortex-M0,[2] Cortex-M0+,[3] Cortex-M1,[4] Cortex-M3,[5] Cortex-M4,[6] Cortex-M7,[7] Cortex-M23,[8] Cortex-M33,[9] Cortex-M35P,[10] Cortex-M52,[11] Cortex-M55,[12] Cortex-M85.[13] A floating-point unit (FPU) option is available for Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85 cores, and when included in the silicon these cores are sometimes known as "Cortex-MxF", where 'x' is the core variant.

Overview

[edit]
32-bit
Year Core
2004 Cortex-M3
2007 Cortex-M1
2009 Cortex-M0
2010 Cortex-M4
2012 Cortex-M0+
2014 Cortex-M7
2016 Cortex-M23
2016 Cortex-M33
2018 Cortex-M35P
2020 Cortex-M55
2022 Cortex-M85
2023 Cortex-M52

The ARM Cortex-M family are ARM microprocessor cores that 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 sensor controllers.

The main difference from Cortex-A cores is that Cortex-M cores have no memory management unit (MMU) for virtual memory, considered essential for "full-fledged" operating systems. Cortex-M programs instead run bare metal or on one of the many real-time operating systems which support a Cortex-M.

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.

In particular, the embedded wear-leveling controller inside most SD cards or flash drives is a (8-bit) 8051 microcontroller or ARM CPU.[14]

License

[edit]

ARM Limited 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

[edit]

Integrated Device Manufacturers (IDM) receive the ARM Processor IP as synthesizable RTL (written in Verilog). 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 (including floating point), 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 (NVIC). When present, it also provides an additional configurable priority SysTick interrupt.[15][16][17] Though the SysTick timer is optional for the M0/M0+/M1/M23, it is extremely rare to find a Cortex-M microcontroller without it. If a Cortex-M33/M35P/M52/M55/M85 microcontroller has the Security Extension option, then it optionally can have two SysTicks (one Secure, 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.[15][16][17] 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 (MPU): Provides support for protecting regions of memory through enforcing privilege and access rules. It supports up to sixteen different regions, each of which can be split further into equal-size sub-regions.[15][16][17]
  • Tightly-Coupled Memory (TCM): Low-latency (zero wait state) SRAM that can be used to hold the call stack, RTOS control structures, interrupt data structures, interrupt handler code, and speed critical code. Other than CPU cache, TCM is the fastest memory in an ARM Cortex-M microcontroller. Since TCM isn't cached and accessible at the same speed as the processor and cache, it could be conceptually described as "addressable cache". There is an ITCM (Instruction TCM) and a DTCM (Data TCM) to allow a Harvard architecture processor to read from both simultaneously. The DTCM can't contain any instructions, but the ITCM can contain data. Since TCM is tightly connected to the processor core, DMA engines might not be able to access TCM on some implementations.
ARM Cortex-M optional components
ARM Core Cortex
M0[18]
Cortex
M0+[19]
Cortex
M1[20]
Cortex
M3[21]
Cortex
M4[22]
Cortex
M7[23]
Cortex
M23[24]
Cortex
M33[25]
Cortex
M35P[10]
Cortex
M52[26]
Cortex
M55[27]
Cortex
M85[28]
SysTick 24-bit Timer Optional
(0,1)
Optional
(0, 1)
Optional
(0,1)
Yes
(1)
Yes
(1)
Yes
(1)
Optional
(0, 1, 2)
Yes
(1, 2)
Yes
(1, 2)
Yes
(1, 2)
Yes
(1, 2)
Yes
(1, 2)
Single-cycle I/O port No Optional No No No No Optional No No No No No
Bit-Band memory No[29] No[29] No* Optional Optional Optional No No No No No No
Memory Protection
Unit (MPU)
No Optional
(0, 8)
No Optional
(0,8)
Optional
(0, 8)
Optional
(0, 8, 16)
Optional
(0, 4, 8, 12, 16)
Optional
(0, 4, 8, 12, 16)
Optional
(up to 16)*
Optional
(0, 4, 8, 12, 16)
Optional
(0, 4, 8, 12, 16)
Optional
(0, 4, 8, 12, 16)
Security Attribution
Unit (SAU) and
Stack Limits
No No No No No No Optional
(0, 4, 8)
Optional
(0, 4, 8)
Optional
(up to 8)*
Optional
(0, 4, 8)
Optional
(0, 4, 8)
Optional
(0, 4, 8)
Instruction Cache No[30] No[30] No[30] No[30] No[30] Optional
(up to 64 KB)
No No Optional
(up to 16 KB)
Optional
(up to 64 KB)
Optional
(up to 64 KB)
Optional
(up to 64 KB)
Data Cache No[30] No[30] No[30] No[30] No[30] Optional
(up to 64 KB)
No No No Optional
(up to 64 KB)
Optional
(up to 64 KB)
Optional
(up to 64 KB)
Instruction TCM
(ITCM) Memory
No No Optional
(up to 1 MB)
No No Optional
(up to 16 MB)
No No No Optional
(up to 16 MB)
Optional
(up to 16 MB)
Optional
(up to 16 MB)
Data TCM
(DTCM) Memory
No No Optional
(up to 1 MB)
No No Optional
(up to 16 MB)
No No No Optional
(up to 16 MB)
Optional
(up to 16 MB)
Optional
(up to 16 MB)
ECC for TCM
and Cache
No No No No No No No No Optional Optional Optional Optional
Vector Table Offset
Register (VTOR)
No Optional
(0,1)
Optional
(0,1)
Optional
(0,1)
Optional
(0,1)
Optional
(0,1)
Optional
(0,1,2)
Yes
(1,2)
Yes
(1,2)
Yes
(1,2)
Yes
(1,2)
Yes
(1,2)
  • 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.[29]
  • Note: Software should validate the existence of each feature before attempting to use it.[17]
  • Note: Limited public information is available for the Cortex-M35P until its Technical Reference Manual is released.

Additional silicon options:[15][16]

  • 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 (M0/M0+/M1), 1 to 240 (M3/M4/M7/M23), 1 to 480 (M33/M35P/M52/M55/M85).
  • Wake-up interrupt controller: Optional.
  • Vector Table Offset Register: Optional. (not available for M0).
  • Instruction fetch width: 16-bit only, or mostly 32-bit.
  • User/privilege support: Optional.
  • Reset all registers: Optional.
  • Single-cycle I/O port: Optional. (M0+/M23).
  • Debug Access Port (DAP): None, SWD, JTAG and SWD. (optional for all Cortex-M cores)
  • Halting debug support: Optional.
  • Number of watchpoint comparators: 0 to 2 (M0/M0+/M1), 0 to 4 (M3/M4/M7/M23/M33/M35P/M52/M55/M85).
  • Number of breakpoint comparators: 0 to 4 (M0/M0+/M1/M23), 0 to 8 (M3/M4/M7/M33/M35P/M52/M55/M85).

Instruction sets

[edit]

The Cortex-M0 / M0+ / M1 implement the ARMv6-M architecture,[15] the Cortex-M3 implements the ARMv7-M architecture,[16] the Cortex-M4 / Cortex-M7 implements the ARMv7E-M architecture,[16] the Cortex-M23 / M33 / M35P implement the ARMv8-M architecture,[31] and the Cortex-M52 / M55 / M85 implements the ARMv8.1-M architecture.[31] The architectures are binary instruction upward compatible from ARMv6-M to ARMv7-M to ARMv7E-M. Binary instructions available for the Cortex-M0 / Cortex-M0+ / Cortex-M1 can execute without modification on the Cortex-M3 / Cortex-M4 / Cortex-M7. Binary instructions available for the Cortex-M3 can execute without modification on the Cortex-M4 / Cortex-M7 / Cortex-M33 / Cortex-M35P.[15][16] Only Thumb-1 and Thumb-2 instruction sets are supported in Cortex-M architectures; the legacy 32-bit ARM instruction set isn't supported.

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 (CBZ, CBNZ, IT) which were added in ARMv7-M architecture. The Cortex-M0 / M0+ / M1 include a minor subset of Thumb-2 instructions (BL, DMB, DSB, ISB, MRS, MSR).[15] 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 (VFPv4-SP). The Cortex-M7 adds an optional double-precision FPU (VFPv5).[23][16] The Cortex-M23 / M33 / M35P / M52 / M55 / M85 add TrustZone instructions.

ARM Cortex-M instruction variations
Arm Core Cortex
M0[18]
Cortex
M0+[19]
Cortex
M1[20]
Cortex
M3[21]
Cortex
M4[22]
Cortex
M7[23]
Cortex
M23[24]
Cortex
M33[25]
Cortex
M35P
Cortex
M52[26]
Cortex
M55[27]
Cortex
M85[28]
ARM architecture ARMv6-M
[15]
ARMv6-M
[15]
ARMv6-M
[15]
ARMv7-M
[16]
ARMv7E-M
[16]
ARMv7E-M
[16]
ARMv8-M
Baseline[31]
ARMv8-M
Mainline[31]
ARMv8-M
Mainline[31]
Armv8.1-M
Mainline[31]
Armv8.1-M
Mainline[31]
Armv8.1-M
Mainline[31]
Computer architecture Von
Neumann
Von
Neumann
Von
Neumann
Harvard Harvard Harvard Von
Neumann
Harvard Harvard Harvard Harvard Harvard
Instruction pipeline 3 stages 2 stages 3 stages 3 stages 3 stages 6 stages 2 stages 3 stages 3 stages 4 stages 4-5 stages 7 stages
Interrupt latency
(zero wait state memory)
16 cycles 15 cycles 23 for NMI,
26 for IRQ
12 cycles 12 cycles 12 cycles,
14 worst
case
15 cycles,
24 secure
to NS IRQ
12 cycles,
21 secure
to NS IRQ
TBD TBD TBD TBD
Thumb-1 instructions Most Most Most Entire Entire Entire Most Entire Entire Entire Entire Entire
Thumb-2 instructions Some Some Some Entire Entire Entire Some Entire Entire Entire Entire Entire
Multiply instructions
32×32 = 32-bit result
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Multiply instructions
32×32 = 64-bit result
No No No Yes Yes Yes No Yes Yes Yes Yes Yes
Divide instructions
32/32 = 32-bit quotient
No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes
Saturated math instructions No No No Some Yes Yes No Yes Yes Yes Yes Yes
DSP instructions No No No No Yes Yes No Optional Optional Yes Yes Yes
Half-Precision (HP)
floating-point instructions
No No No No No No No No No Optional Optional Optional
Single-Precision (SP)
floating-point instructions
No No No No Optional Optional No Optional Optional Optional Optional Optional
Double-Precision (DP)
floating-point instructions
No No No No No Optional No No No Optional Optional Optional
Helium vector instructions No No No No No No No No No Optional Optional Optional
TrustZone security instructions No No No No No No Optional Optional Optional Optional Optional Yes
Co-processor instructions No No No No No No No Optional Optional Optional Optional Optional
ARM Custom Instructions (ACI) No No No No No No No Optional No Optional Optional Optional
Pointer Authentication and Branch Target
Identification (PACBTI) instructions
No No No No No No No No No Optional No Optional
  • 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.
  • Note: The Cortex-M series includes three new 16-bit Thumb-1 instructions for sleep mode: SEV, WFE, WFI.
  • Note: The Cortex-M0 / M0+ / M1 doesn't include these 16-bit Thumb-1 instructions: CBZ, CBNZ, IT.[15][16]
  • Note: The Cortex-M0 / M0+ / M1 only include these 32-bit Thumb-2 instructions: BL, DMB, DSB, ISB, MRS, MSR.[15][16]
  • Note: The Cortex-M0 / M0+ / M1 / M23 only has 32-bit multiply instructions with a lower-32-bit result (32 bit × 32 bit = lower 32 bit), where as the Cortex-M3 / M4 / M7 / M33 / M35P includes additional 32-bit multiply instructions with 64-bit results (32 bit × 32 bit = 64 bit). The Cortex-M4 / M7 (optionally M33 / M35P) include DSP instructions for (16 bit × 16 bit = 32 bit), (32 bit × 16 bit = upper 32 bit), (32 bit × 32 bit = upper 32 bit) multiplications.[15][16]
  • 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 (slow speed), 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 (depending on values), Cortex-M4/M7/M33/M35P is 1 cycle.
    • Divide instructions – Cortex-M3/M4 is 2–12 cycles (depending on values), Cortex-M7 is 3–20 cycles (depending on values), Cortex-M23 is 17 or 34 cycle option, Cortex-M33 is 2–11 cycles (depending on values), Cortex-M35P is TBD.
  • Note: Some Cortex-M cores have silicon options for various types of floating point units (FPU). The Cortex-M55 / M85 has an option for half-precision (HP), the Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85 has an option for single-precision (SP), the Cortex-M7 / M52 / M55 / M85 has an option for double-precision (DP). When an FPU is included, the core is sometimes referred as "Cortex-MxF", where 'x' is the core variant, such as Cortex-M4F.[15][16]
ARM Cortex-M instruction groups
Group Instr
bits
Instructions Cortex
M0, M0+, M1
Cortex
M3
Cortex
M4
Cortex
M7
Cortex
M23
Cortex
M33
Cortex
M35P
Cortex
M52
Cortex
M55
Cortex
M85
Thumb-1 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 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Thumb-1 16 CBNZ, CBZ No Yes Yes Yes Yes Yes Yes Yes Yes Yes
Thumb-1 16 IT No Yes Yes Yes No Yes Yes Yes Yes Yes
Thumb-2 32 BL, DMB, DSB, ISB, MRS, MSR Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Thumb-2 32 SDIV, UDIV, MOVT, MOVW, B.W, LDREX, LDREXB, LDREXH, STREX, STREXB, STREXH No Yes Yes Yes Yes Yes Yes Yes Yes Yes
Thumb-2 32 ADC, ADD, ADR, AND, ASR, B, BFC, BFI, BIC, CDP, CLREX, CLZ, CMN, CMP, DBG, EOR, LDC, LDM, LDR, LDRB, LDRBT, LDRD, LDRH, LDRHT, LDRSB, LDRSBT, LDRSH, LDRSHT, LDRT, LSL, LSR, MCR, MCRR, MLA, MLS, 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, STRH, STRHT, STRT, SUB, SXTB, SXTH, TBB, TBH, TEQ, TST, UBFX, UMLAL, UMULL, USAT, UXTB, UXTH, WFE, WFI, YIELD No Yes Yes Yes No Yes Yes Yes Yes Yes
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 No No Yes Yes No Optional Optional Yes Yes Yes
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 No No Optional Optional No Optional Optional Optional Optional Optional
DP Float 32 VCVTA, VCVTM, VCVTN, VCVTP, VMAXNM, VMINNM, VRINTA, VRINTM, VRINTN, VRINTP, VRINTR, VRINTX, VRINTZ, VSEL No No No Optional No No No Optional Optional Optional
Acquire/Release 32 LDA, LDAB, LDAH, LDAEX, LDAEXB, LDAEXH, STL, STLB, STLH, STLEX, STLEXB, STLEXH No No No No Yes Yes Yes Yes Yes Yes
TrustZone 16 BLXNS, BXNS No No No No Optional Optional Optional Optional Optional Yes
32 SG, TT, TTT, TTA, TTAT
Co-processor 16 CDP, CDP2, MCR, MCR2, MCRR, MCRR2, MRC, MRC2, MRRC, MRRC2 No No No No No Optional Optional Optional Optional Optional
ACI 32 CX1, CX1A, CX2, CX2A, CX3, CX3A, CX1D, CX1DA, CX2D, CX2DA, CX3D, CX3DA, VCX1, VCX1A, VCX2, VCX2A, VCX3, VCX3A No No No No No Optional No Optional Optional Optional
PACBTI 32 AUT, AUTG, BTI, BXAUT, PAC, PACBTI, PACG No No No No No No No Optional No Optional
  • Note: MOVW is an alias that means 32-bit "wide" MOV instruction.
  • Note: B.W is a long-distance unconditional branch (similar in encoding, operation, and range to BL, minus setting of the LR register).
  • Note: For Cortex-M1, WFE / WFI / SEV instructions exist, but execute as a NOP instruction.
  • Note: The half-precision (HP) FPU instructions are valid in the Cortex-M52 / M55 / M85 only when the HP FPU option exists in the silicon.
  • Note: The single-precision (SP) FPU instructions are valid in the Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85 only when the SP FPU option exists in the silicon.
  • Note: The double-precision (DP) FPU instructions are valid in the Cortex-M7 / M52 / M55 / M85 only when the DP FPU option exists in the silicon.

Deprecations

[edit]

The ARM architecture for ARM Cortex-M series removed some features from older legacy cores:[15][16]

  • 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-processors were not supported on Cortex-M cores, until the silicon option was reintroduced in "ARMv8-M Mainline" for ARM Cortex-M33/M35P cores.

The capabilities of the 32-bit ARM instruction set is duplicated in many ways by the Thumb-1 and Thumb-2 instruction sets, but some ARM features don't have a similar feature:

  • The SWP and SWPB (swap) ARM instructions don't have a similar feature in Cortex-M.

The 16-bit Thumb-1 instruction set has evolved over time since it was first released in the legacy ARM7T cores with the ARMv4T architecture. New Thumb-1 instructions were added as each legacy ARMv5 / ARMv6 / ARMv6T2 architectures were released. Some 16-bit Thumb-1 instructions were removed from the Cortex-M cores:

  • The "BLX <immediate>" instruction doesn't exist because it was used to switch from Thumb-1 to ARM instruction set. The "BLX <register>" 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

[edit]
Cortex-M0
Architecture and classification
Instruction setARMv6-M (Thumb-1 (most),
Thumb-2 (some))

The Cortex-M0 core is optimized for small silicon die size and use in the lowest price chips.[2]

Key features of the Cortex-M0 core are:[18]

  • ARMv6-M architecture[15]
  • 3-stage pipeline
  • Instruction sets:
    • Thumb-1 (most), missing CBZ, CBNZ, IT
    • Thumb-2 (some), only BL, DMB, DSB, ISB, MRS, MSR
    • 32-bit hardware integer multiply with 32-bit result
  • 1 to 32 interrupts, plus NMI

Silicon options:

  • Hardware integer multiply speed: 1 or 32 cycles.

Chips

[edit]
nRF51822

The following microcontrollers are based on the Cortex-M0 core:

The following chips have a Cortex-M0 as a secondary core:

  • NXP LPC4300 (one Cortex-M4F + one Cortex-M0)
  • Texas Instruments SimpleLink Wireless MCUs CC1310 and CC2650 (one programmable Cortex-M3 + one Cortex-M0 network processor + one proprietary Sensor Controller Engine)

Cortex-M0+

[edit]
Cortex-M0+
Architecture and classification
MicroarchitectureARMv6-M
Instruction setThumb-1 (most),
Thumb-2 (some)
NXP (Freescale) FRDM-KL25Z Board with KL25Z128VLK (Kinetis L)

The Cortex-M0+ is an optimized superset of the Cortex-M0. The Cortex-M0+ has complete instruction set compatibility with the Cortex-M0 thus allowing the use of the same compiler and debug tools. The Cortex-M0+ pipeline was reduced from 3 to 2 stages, which lowers the power usage and increases performance (higher average IPC due to branches taking one fewer cycle). In addition to debug features in the existing Cortex-M0, a silicon option can be added to the Cortex-M0+ called the Micro Trace Buffer (MTB) which provides a simple instruction trace buffer. The Cortex-M0+ also received Cortex-M3 and Cortex-M4 features, which can be added as silicon options, such as the memory protection unit (MPU) and the vector table relocation.[19]

Key features of the Cortex-M0+ core are:[19]

  • ARMv6-M architecture[15]
  • 2-stage pipeline (one fewer than Cortex-M0)
  • Instruction sets: (same as Cortex-M0)
    • Thumb-1 (most), missing CBZ, CBNZ, IT
    • Thumb-2 (some), only BL, DMB, DSB, ISB, MRS, MSR
    • 32-bit hardware integer multiply with 32-bit result
  • 1 to 32 interrupts, plus NMI

Silicon options:

  • Hardware integer multiply speed: 1 or 32 cycles
  • 8-region memory protection unit (MPU) (same as M3 and M4)
  • Vector table relocation (same as M3, M4)
  • Single-cycle I/O port (available in M0+/M23)
  • Micro Trace Buffer (MTB) (available in M0+/M23/M33/M35P)

Chips

[edit]

The following microcontrollers are based on the Cortex-M0+ core:

The following chips have a Cortex-M0+ as a secondary core:

  • Cypress PSoC 6200 (one Cortex-M4F + one Cortex-M0+)
  • ST WB (one Cortex-M4F + one Cortex-M0+)

The smallest ARM microcontrollers are of the Cortex-M0+ type (as of 2014, smallest at 1.6 mm by 2 mm in a chip-scale package is Kinetis KL03).[33]

On 21 June 2018, the "world's smallest computer'", or computer device was announced – based on the ARM Cortex-M0+ (and including RAM and wireless transmitters and receivers based on photovoltaics) – 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 one-tenth 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

[edit]
Cortex-M1
Architecture and classification
MicroarchitectureARMv6-M
Instruction setThumb-1 (most),
Thumb-2 (some)

The Cortex-M1 is an optimized core especially designed to be loaded into FPGA chips.[4]

Key features of the Cortex-M1 core are:[20]

  • ARMv6-M architecture[15]
  • 3-stage pipeline.
  • Instruction sets:
    • Thumb-1 (most), missing CBZ, CBNZ, IT.
    • Thumb-2 (some), only BL, DMB, DSB, ISB, MRS, MSR.
    • 32-bit hardware integer multiply with 32-bit result.
  • 1 to 32 interrupts, plus NMI.

Silicon options:

  • Hardware integer multiply speed: 3 or 33 cycles.
  • Optional Tightly-Coupled Memory (TCM): 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

[edit]

The following vendors support the Cortex-M1 as soft-cores on their FPGA chips:

Cortex-M3

[edit]
Cortex-M3
Architecture and classification
MicroarchitectureARMv7-M
Instruction setThumb-1, Thumb-2,
Saturated (some), Divide
Arduino Due board with Atmel ATSAM3X8E (ARM Cortex-M3 core) microcontroller
NXP LPCXpresso Development Board with LPC1343

Key features of the Cortex-M3 core are:[21][36]

  • ARMv7-M architecture[16]
  • 3-stage pipeline with branch speculation.
  • Instruction sets:
    • Thumb-1 (entire).
    • Thumb-2 (entire).
    • 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 (2–12 cycles).
    • saturation arithmetic support.
  • 1 to 240 interrupts, plus NMI.
  • 12 cycle interrupt latency.
  • Integrated sleep modes.

Silicon options:

  • Optional Memory Protection Unit (MPU): 0 or 8 regions.

Chips

[edit]

The following microcontrollers are based on the Cortex-M3 core:

The following chips have a Cortex-M3 as a secondary core:

The following FPGAs include a Cortex-M3 core:

The following vendors support the Cortex-M3 as soft-cores on their FPGA chips:

  • Altera Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
  • Xilinx Spartan-3, Virtex-2, Virtex-3, Virtex-4, Artix-7[38]

Cortex-M4

[edit]
Cortex-M4
Architecture and classification
MicroarchitectureARMv7E-M
Instruction setThumb-1, Thumb-2,
Saturated, DSP,
Divide, FPU (SP)
Silicon Labs (Energy Micro) Wonder Gecko STK Board with EFM32WG990
TI Stellaris Launchpad Board with LM4F120

Conceptually the Cortex-M4 is a Cortex-M3 plus DSP instructions, and optional floating-point unit (FPU). A core with an FPU is known as Cortex-M4F.

Key features of the Cortex-M4 core are:[22]

  • ARMv7E-M architecture[16]
  • 3-stage pipeline with branch speculation.
  • Instruction sets:
    • Thumb-1 (entire).
    • Thumb-2 (entire).
    • 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 (2–12 cycles).
    • 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.

Silicon options:

  • Optional floating-point unit (FPU): single-precision only IEEE-754 compliant. It is called the FPv4-SP extension.
  • Optional memory protection unit (MPU): 0 or 8 regions.

Chips

[edit]
nRF52833 on a micro bit v2
STM32F407IGH6

The following microcontrollers are based on the Cortex-M4 core:

The following microcontrollers are based on the Cortex-M4F (M4 + FPU) core:

The following chips have either a Cortex-M4 or M4F as a secondary core:

Cortex-M7

[edit]
Cortex-M7
Architecture and classification
MicroarchitectureARMv7E-M
Instruction setThumb-1, Thumb-2,
Saturated, DSP,
Divide, FPU (SP & DP)
Arduino GIGA R1 WiFi board with (dual core ARM Cortex-M7 + ARM Cortex-M4) STM32H747XIH6 microcontroller

The Cortex-M7 is a high-performance core with almost double the power efficiency of the older Cortex-M4.[7] It features a 6-stage superscalar pipeline with branch prediction and an optional floating-point unit capable of single-precision and optionally double-precision operations.[7][39] The instruction and data buses have been enlarged to 64-bit wide over the previous 32-bit buses. If a core contains an FPU, it is known as a Cortex-M7F, otherwise it is a Cortex-M7.

Key features of the Cortex-M7 core are:[23]

  • ARMv7E-M architecture.
  • 6-stage pipeline with branch speculation. Second-longest of all ARM Cortex-M cores, with the first being Cortex-M85.
  • Instruction sets:
    • Thumb-1 (entire).
    • Thumb-2 (entire).
    • 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 (2–12 cycles).
    • 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.

Silicon options:

  • Optional floating-point unit (FPU): (single precision) or (single and double-precision), 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 (TCM): 0 to 16 MB instruction-TCM, 0 to 16 MB data-TCM, each with optional ECC.
  • Optional Memory Protection Unit (MPU): 8 or 16 regions.
  • Optional Embedded Trace Macrocell (ETM): instruction-only, or instruction and data.
  • Optional Retention Mode (with Arm Power Management Kit) for Sleep Modes.
  • Optional dual-redundant lock-step operation.

Chips

[edit]

The following microcontrollers are based on the Cortex-M7 core:

Cortex-M23

[edit]
Cortex-M23
Architecture and classification
MicroarchitectureARMv8-M Baseline
Instruction setThumb-1 (most),
Thumb-2 (some),
Divide, TrustZone

The Cortex-M23 core was announced in October 2016[40] and based on the ARMv8-M architecture that was previously announced in November 2015.[41] Conceptually the Cortex-M23 is similar to a Cortex-M0+ plus integer divide instructions and TrustZone security features, and also has a 2-stage instruction pipeline.[8]

Key features of the Cortex-M23 core are:[24][40]

  • ARMv8-M Baseline architecture.[31]
  • 2-stage pipeline. (similar to Cortex-M0+)
  • TrustZone security instructions.
  • 32-bit hardware integer divide (17 or 34 cycles).(slower than divide in all other cores)
  • Stack limit boundaries. (available only with SAU option)

Silicon options:

  • 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 (MPU): 0, 4, 8, 12, 16 regions.
  • Optional Security Attribution Unit (SAU): 0, 4, 8 regions.
  • Single-cycle I/O port (available in M0+/M23).
  • Micro Trace Buffer (MTB)

Chips

[edit]

The following microcontrollers are based on the Cortex-M23 core:

Cortex-M33

[edit]
Cortex-M33
Architecture and classification
MicroarchitectureARMv8-M Mainline
Instruction setThumb-1, Thumb-2,
Saturated, DSP,
Divide, FPU (SP),
TrustZone, Co-processor

The Cortex-M33 core was announced in October 2016[40] and based on the ARMv8-M architecture that was previously announced in November 2015.[41] Conceptually the Cortex-M33 is similar to a cross of Cortex-M4 and Cortex-M23, and also has a 3-stage instruction pipeline.[9]

Key features of the Cortex-M33 core are:[25][40]

  • ARMv8-M Mainline architecture.[31]
  • 3-stage pipeline.
  • TrustZone security instructions.
  • 32-bit hardware integer divide (11 cycles maximum).
  • Stack limit boundaries. (available only with SAU option)

Silicon options:

  • Optional Floating-Point Unit (FPU): single-precision only IEEE-754 compliant. It is called the FPv5 extension.
  • Optional Memory Protection Unit (MPU): 0, 4, 8, 12, 16 regions.
  • Optional Security Attribution Unit (SAU): 0, 4, 8 regions.
  • Micro Trace Buffer (MTB)

Chips

[edit]

The following microcontrollers are based on the Cortex-M33 core:

The following chips have a Cortex-M33 or M33F as a secondary core:

Cortex-M35P

[edit]
Cortex-M35P
Architecture and classification
MicroarchitectureARMv8-M Mainline
Instruction setThumb-1, Thumb-2,
Saturated, DSP,
Divide, FPU (SP),
TrustZone, Co-processor

The Cortex-M35P core was announced in May 2018 and based on the Armv8-M architecture. It is conceptually a Cortex-M33 core with a new instruction cache, plus new tamper-resistant hardware concepts borrowed from the ARM SecurCore family, and configurable parity and ECC features.[10]

Currently, information about the Cortex-M35P is limited, because its Technical Reference Manual and Generic User Guide haven't been released yet.

Chips

[edit]

The following microcontrollers are based on the Cortex-M35P core:

Cortex-M52

[edit]
Cortex-M52
Architecture and classification
MicroarchitectureARMv8.1-M Mainline Helium
Instruction setThumb-1, Thumb-2,
Saturated, DSP,
Divide, FPU (VFPv5),
TrustZone, Coprocessor, MVE

The Cortex-M52 core was announced in November 2023 and based on the Armv8.1-M architecture. Conceptually, it can be seen as a cross between the Cortex-M33 and the Cortex-M55. Key differences are that its Helium co-processor is single beat (the M55 is dual beat), and it has a 32-bit main bus similar to the M33 to ease transition of applications. It has a 4 stage instruction pipeline.[11]

Key features of the Cortex-M52 core include:

  • ARMv8.1-M Mainline/Helium architecture.[31]
  • 4-stage pipeline.
  • Stack limit boundaries (available only with SAU option).
  • 32-bit main bus (AHB or AXI)[11]

Silicon options:

  • Helium (M-Profile Vector Extension, MVE)
  • Pointer Authentication and Branch Target Identification Extension
  • Single-Precision and Double-Precision floating-point
  • Digital Signal Processing (DSP) extension support
  • TrustZone security extension support
  • Safety and reliability (RAS) 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 up to 64 KB
  • Data cache with size of up to 64 KB
  • 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

[edit]

The following microcontrollers are based on the Cortex M52 core

  • Geehy Semiconductor G32R5[43]

Cortex-M55

[edit]
Cortex-M55
Architecture and classification
MicroarchitectureARMv8.1-M Mainline Helium
Instruction setThumb-1, Thumb-2,
Saturated, DSP,
Divide, FPU (VFPv5),
TrustZone, Coprocessor, MVE

The Cortex-M55 core was announced in February 2020 and based on the Armv8.1-M architecture. It has a 4 or 5 stage instruction pipeline.[12]

Key features of the Cortex-M55 core include:

  • ARMv8.1-M Mainline/Helium architecture.[31]
  • 4-stage pipeline.
  • Stack limit boundaries (available only with SAU option).
  • 64-bit AXI main bus[12]

Silicon options:

  • Helium (M-Profile Vector Extension, MVE)
  • Single-Precision and Double-Precision floating-point
  • Digital Signal Processing (DSP) extension support
  • TrustZone security extension support
  • Safety and reliability (RAS) 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 4 KB, 8 KB, 16 KB, 32 KB, 64 KB
  • Data cache with size of 4 KB, 8 KB, 16 KB, 32 KB, 64 KB
  • 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

[edit]

Cortex-M85

[edit]
Cortex-M85
Architecture and classification
MicroarchitectureARMv8.1-M Mainline Helium
Instruction setThumb-1, Thumb-2,
Saturated, DSP,
Divide, FPU (VFPv5),
TrustZone, Coprocessor, MVE

The Cortex-M85 core was announced in April 2022 and based on the Armv8.1-M architecture. It has a 7-stage instruction pipeline.[13]

Silicon options:

  • Optional CPU cache: 0 to 64 KB instruction-cache, 0 to 64 KB data-cache, each with optional ECC.
  • Optional Tightly-Coupled Memory (TCM): 0 to 16 MB instruction-TCM, 0 to 16 MB data-TCM, each with optional ECC.
  • Optional Memory Protection Unit (MPU): 16 regions. Can have separate ones for secure and non-secure mode if TrustZone is implemented.
  • Up to 480 interrupts and NMI
  • 3–8 exception priority bits
  • Optional dual-redundant lock-step operation.

Chips

[edit]

Development tools

[edit]

Documentation

[edit]

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 (ARM Limited).

A typical top-down documentation tree is:

Documentation tree (top to bottom)
  1. IC manufacturer website.
  2. IC manufacturer marketing slides.
  3. IC manufacturer datasheet for the exact physical chip.
  4. IC manufacturer reference manual that describes common peripherals and aspects of a physical chip family.
  5. ARM core website.
  6. ARM core generic user guide.
  7. ARM core technical reference manual.
  8. ARM architecture reference manual.

IC manufacturers have additional documents, such as: evaluation board user manuals, application notes, getting started guides, software library documents, errata, and more. See External links section for links to official Arm documents.

See also

[edit]

References

[edit]
  1. ^ ARM Cortex-M website; ARM Limited.
  2. ^ a b "Cortex-M0 Home". ARM Limited.
  3. ^ "Cortex-M0+ Home". ARM Limited.
  4. ^ a b "Cortex-M1 Home". ARM Limited.
  5. ^ "Cortex-M3 Home". ARM Limited.
  6. ^ "Cortex-M4 Home". ARM Limited.
  7. ^ a b c "Cortex-M7 Home". ARM Limited.
  8. ^ a b "Cortex-M23 Home". ARM Limited.
  9. ^ a b "Cortex-M33 Home". ARM Limited.
  10. ^ a b c "Cortex-M35P Home". ARM Limited.
  11. ^ a b c "Cortex-M52 Home". ARM Limited.
  12. ^ a b c "Cortex-M55 Home". ARM Limited.
  13. ^ a b "Cortex-M85 Home". ARM Limited.
  14. ^ "On Hacking MicroSD Cards".
  15. ^ a b c d e f g h i j k l m n o p q r "ARMv6-M Architecture Reference Manual". ARM Limited.
  16. ^ a b c d e f g h i j k l m n o p q r "ARMv7-M Architecture Reference Manual". ARM Limited.
  17. ^ a b c d Cortex-M3 Embedded Software Development; App Note 179; ARM Limited.
  18. ^ a b c "Cortex-M0 Technical Reference Manual". ARM Limited.
  19. ^ a b c d "Cortex-M0+ Technical Reference Manual". ARM Limited.
  20. ^ a b c "Cortex-M1 Technical Reference Manual". ARM Limited.
  21. ^ a b c "Cortex-M3 Technical Reference Manual". ARM Limited.
  22. ^ a b c "Cortex-M4 Technical Reference Manual". ARM Limited.
  23. ^ a b c d "Cortex-M7 Technical Reference Manual". ARM Limited.
  24. ^ a b c "Cortex-M23 Technical Reference Manual". ARM Limited.
  25. ^ a b c "Cortex-M33 Technical Reference Manual". ARM Limited.
  26. ^ a b "Cortex-M52 Technical Reference Manual". ARM Limited.
  27. ^ a b "Cortex-M55 Technical Reference Manual". ARM Limited.
  28. ^ a b "Cortex-M85 Technical Reference Manual". ARM Limited.
  29. ^ a b c "Cortex-M System Design Kit (CMSDK)". Arm Holdings. Archived from the original on March 4, 2016.
  30. ^ a b c d e f g h i j ARM Cortex-M Programming Guide to Memory Barrier Instructions; Section 3.6 System implementation requirements; AppNote 321; ARM Limited.
  31. ^ a b c d e f g h i j k l "ARMv8-M Architecture Reference Manual". ARM Limited.
  32. ^ 32-bit PIC and SAM Microcontrollers; Microchip.
  33. ^ Fingas, Jon (25 February 2014). "Freescale makes the world's smallest ARM controller chip even tinier". Retrieved 2 October 2014.
  34. ^ GOWIN Semiconductor joins ARM DesignStart offering free ARM Cortex-M1 Processors for its FPGA product families
  35. ^ Cortex-M1 DesignStart FPGA XilinxEdition; ARM Limited.
  36. ^ Sadasivan, Shyam. "An Introduction to the ARM Cortex-M3 Processor" (PDF). ARM Limited. Archived from the original (PDF) on July 26, 2014.
  37. ^ "Samsung Exynos 7420 Deep Dive - Inside a Modern 14nm SoC". AnandTech. Retrieved 2025-08-06.
  38. ^ Cortex-M3 DesignStart FPGA XilinxEdition
  39. ^ "ARM Supercharges MCU Market with High Performance Cortex-M7 Processor". ARM Limited (Press release). September 24, 2014.
  40. ^ a b c d New ARM Cortex-M processors offer the next industry standard for secure IoT; ARM Limited; October 25, 2016.
  41. ^ a b ARMv8-M Architecture Simplifies Security for Smart Embedded Devices; ARM Limited; November 10, 2015.
  42. ^ "nRF54H20 - Nordic Semiconductor". www.nordicsemi.com. Retrieved 2025-08-06.
  43. ^ "The World's First Dual-Core Real-Time Control MCU Featuring Cortex-M52 Processor Unveiled at Electronica China 2024".

Further reading

[edit]
  • Designer's Guide to the Cortex-M Processor Family; 3rd Ed; Trevor Martin; 648 pages; 2022; ISBN 978-0323854948.
  • Definitive Guide to the ARM Cortex-M0 and Cortex-M0+ Processors; 2nd Ed; Joseph Yiu; 784 pages; 2015; ISBN 978-0128032770.
  • Definitive Guide to the ARM Cortex-M3 and Cortex-M4 Processors; 3rd Ed; Joseph Yiu; 864 pages; 2013; ISBN 978-0124080829.
  • Definitive Guide to the ARM Cortex-M23 and Cortex-M33 Processors; 1st Ed; Joseph Yiu; 928 pages; 2020; ISBN 978-0128207352.
  • Microcontrollers with C: Cortex-M and Beyond; 1st Ed; Klaus Elk; 227 pages; 2023; ISBN 979-8862003437.
  • Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C; 4th Ed; Yifeng Zhu; 730 pages; 2023; ISBN 978-0982692677.
  • ARM Assembly for Embedded Applications; 5th Ed; Daniel Lewis; 379 pages; 2019; ISBN 978-1092542234.
  • Assembly Language Programming: ARM Cortex-M3; 1st Ed; Vincent Mahout; 256 pages; 2012; ISBN 978-1848213296.
  • Digital Signal Processing and Applications Using the ARM Cortex-M4; 1st Ed; Donald Reay; 320 pages; 2015; ISBN 978-1118859049.
  • Hands-On RTOS with Microcontrollers; 1st Ed; Brian Amos; 496 pages; 2020; ISBN 978-1838826734.
[edit]
ARM Cortex-M official documents
ARM
core
Bit
width
ARM
website
ARM generic
user guide
ARM technical
reference manual
ARM architecture
reference manual
Cortex-M0 32 Link Link Link ARMv6-M
Cortex-M0+ 32 Link Link Link ARMv6-M
Cortex-M1 32 Link Link Link ARMv6-M
Cortex-M3 32 Link Link Link ARMv7-M
Cortex-M4 32 Link Link Link ARMv7E-M
Cortex-M7 32 Link Link Link ARMv7E-M
Cortex-M23 32 Link Link Link ARMv8-M
Cortex-M33 32 Link Link Link ARMv8-M
Cortex-M35P 32 Link N/A N/A ARMv8-M
Cortex-M52 32 Link Link Link ARMv8.1-M
Cortex-M55 32 Link Link Link ARMv8.1-M
Cortex-M85 32 Link Link Link ARMv8.1-M
Quick reference cards
  • Instructions: Thumb-1 (1), ARM and Thumb-2 (2), Vector Floating-Point (3) arm.com
  • Opcodes: Thumb-1 (1, 2), ARM (3, 4), GNU Assembler Directives (5).
Migrating
Other
飞机是什么 下午2点是什么时辰 肺肾两虚吃什么中成药 对公转账是什么意思 尿里有结晶是什么原因
群像是什么意思 什么学步成语 沙龙是什么 处女座的幸运色是什么 渝北区有什么好玩的地方
令人发指是什么意思 潘多拉属于什么档次 枭雄的意思是什么 手足口不能吃什么食物 事后紧急避孕药什么时候吃有效
口且念什么 陪产假什么时候开始休 mru是什么检查 天麻是什么样子 微针是什么美容项目
口腔医学是干什么的jiuxinfghf.com 肾出血是什么原因引起的hcv8jop2ns6r.cn 遇见是什么意思hcv8jop1ns8r.cn 皮肤粗糙缺什么维生素zsyouku.com 散文是什么意思hcv7jop9ns1r.cn
挂面是什么面jiuxinfghf.com 意有所指是什么意思hcv8jop9ns5r.cn 明月几时有的下一句是什么hcv8jop0ns3r.cn 杀虫剂中毒有什么症状hcv9jop0ns5r.cn 人肉搜索是什么hcv8jop6ns3r.cn
流光是什么意思hcv8jop5ns8r.cn 马牙是什么原因引起的hcv8jop8ns9r.cn 剖腹产吃什么下奶快hcv8jop4ns9r.cn 风寒感冒吃什么食物hcv9jop2ns2r.cn 城市的夜晚霓虹灯璀璨是什么歌hcv8jop0ns1r.cn
胆道闭锁有什么症状hcv9jop2ns0r.cn 寡淡是什么意思hcv9jop4ns6r.cn 雷锋日是什么时候sscsqa.com mlf是什么意思hcv9jop1ns2r.cn 占有欲是什么意思hcv9jop3ns7r.cn
百度