Contrast of Cortex M Family
CM0 ~ CM4
CM0 vs CM0+
|
CPU Core
|
NVIC
|
WIC
|
AHB-Lite
|
Debug Module
|
DAP Interface
|
MPU
|
MTB
|
Fast I/O
|
ITM/ETM
|
DSP
|
FPU
|
What Enhancement?
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CM0 |
ARMv6-M ARM公司于2007年推出的内核。冯·诺依曼体系结构,3级流水线,支持大部分Thumb和小部分Thumb-2指令集,所有指令一共57条。此外还内嵌32-bit返回结果的硬件乘法器。 |
用于CPU在正常Run模式下中断管理。最大支持32个外部中断,外部中断可设4级抢占优先级(2bit) | 用于CPU在低功耗Sleep模式下中断管理。 | 一条32bit AMBA-3标准的高性能system总线负责所有Flash、SRAM指令和数据存取 | 0-4个硬件断点Breakpoint,0-2个数据监测点Watchpoint | 通过DAP模块支持JTAG和SWD接口 | NA | NA | NA | NA | NA | NA | |
CM0+ | Yes | Yes | Yes | Yes | Yes | Yes | 提供硬件方式管理和保护内存,控制访问权限,最大可将内存分为8*8个region。内存越权访问,将返回MemManage Fault | 用户体验更好的的跟踪调试,优化的异常捕获机制,可以更快地定位bug。 | 可单周期访问的快速I/O口,更易于Bit-banging(比如GPIO模拟SPI、IIC协议)。 | NA | NA | NA |
ARMv6-M CPU core:流水线改为2级(很多8bit MCU都是2级流水线,主要用于降低功耗)
NVIC: 增加了VTOR即中断重定向功能。 |
CM3 | ARMv7-M | Yes | Yes | 3 * AHB-Lite | Yes | ? | Yes | ? | NA | ITM更好地支持printf风格debug,ETM提供实时指令和数据跟踪 | NA | NA |
ARMv7-M CPU core: ARM公司于2004年推出的内核。哈佛体系结构,3级流水线+分支预测,支持全部的Thumb和Thumb-2指令集。内嵌32-bit硬件乘法器可返回64-bit运算结果,且新增32-bit硬件除法器
NVIC: 最大支持240个外部中断,中断优先级可分组(抢占优先级、响应优先级),8bit优先级设置(最大128级抢占优先级(对应最小2级响应优先级),最大256级响应优先级(对应无抢占优先级))。
3 * AHB-Lite: 除了原system总线负责SRAM存取外,还新增两条ICode、DCode总线分别完成Flash上指令和数据存取。
Debug Module: 0-8个硬件断点Breakpoint,0-4个数据监测点Watchpoint。
ITM/ETM: ITM更好地支持printf风格debug,ETM提供实时指令和数据跟踪 |
CM4 | ARMv7E-M | Yes | Yes | Yes | Yes | ? | Yes | ? | NA | Yes | 新增支持单周期16/32-bit MAC、dual 16-bit MAC, 8/16-bit SIMD算法的数字信号处理单元 | 新增单精度(float型)兼容IEEE-754标准的浮点运算单元(VFPv4-SP) | ARMv7E-M: 增加了DSP相关指令支持。 |
CM4 vs CM7
|
What's the enhancement?
|
What's more?
|
---|---|---|
CM4 vs. CM7 |
|
|