1904_ARM Cortex M系列芯片特性小结

1904_ARM Cortex M系列芯片特性小结

全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com)

ARM Cortex M系列的MCU用过好几款了,也涉及到了不同的内核。不过,关于这些内核的基本的特性还是有些不了解。从ARM的官方网站上找来了一个对比表,结合我用过的一些体验做一个知识增补整理。

这个系列的MCU主要是面向功耗以及能耗比进行优化而设计出来的。具有低延迟以及高度的运行可确定性。

涉及到的指令集有v6m、v7m、v8m、v8.1m等。

以前听到过一个说法是M3与M4的软件兼容性好,可能是说指令集是相同的?或许,在满足了一定的使用条件约束之后,两者在二进制上都能够做到一定的通用度。

有两个Mx3的型号,以前看到这个以为M33是M3的加强版,现在看似乎是完全不同的设计。

浮点处理单元FPU只有部分处理器上有。我接触过的架构现在有M0、M0+、M3、M4、M33、M7等。这几个接触过的内核中,只有M4、M33以及M7是有FPU可以选配的,而且只有M7可能选配双精度的支持。不过,M7的内核必然会有一个单精度的FPU支持。

这里增加一下浮点运算单元的几个缩写的解释。

DSP的功能支持,在我用过的架构中,M4以及M7是支持的。而M33可能支持,这个是选配的。由此,M4、M7架构的MCU在我接触到的应用中使用很广泛,看起来也是有很多资本背书的。

协处理器接口方面,我接触过的架构中只有M33是选配的。暂且不是很明确这种协处理器能够实现的作用是什么,都可以完成什么功能?

DMIPS以及CoreMark都是衡量MCU处理能力的参数,从这里看,其实并不是M后面的序号越大算力就越强。当然,从普遍规律上来看,大的趋势的确是如此。

还有几个其他的参数,分别是MPU、数据缓存双核锁步的支持。我用过的好几个架构都有MPU的支持,只是不同架构支持的保护区数目不同。M0+、M3、M4是支持8个保护区,而M33、M7支持16个保护区。数据缓存,在之前接触的这些MCU中,只有M7的存在数据缓存。锁步核的支持,也只存在于M7之上,这样很多功能安全的设计要求高的就只能选择M7内核的MCU了。

最后还有一个通用的认证,不知道跟加密验签等是否是一回事儿。不过我用过的芯片里面只有M33内核是支持的,而且实际的使用中并没有用到对应的功能。

以前整理过一个M0内核的了解资料,这样通过对这个表格的信息的整理,对我之前用过的一部分MCU的内核信息的了解算是又多了一些完善了。

相关推荐
陌夏微秋3 小时前
51单片机基础02 动态数码管显示-并串转换
arm开发·单片机·嵌入式硬件·51单片机·硬件工程·信息与通信·信号处理
烬奇小云1 天前
使用 unicorn 和 capstone 库来模拟 ARM Thumb 指令的执行,并实现多个钩子(hook)来监控代码执行、系统调用和内存读写操作(二)
java·arm开发·python
CYRUS STUDIO2 天前
Android 下内联汇编,Android Studio 汇编开发
android·汇编·arm开发·android studio·arm
艾格北峰2 天前
STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55
arm开发·stm32·单片机·嵌入式硬件
橘色的喵3 天前
嵌入式ARM平台Linux网络实时性能优化
linux·网络·arm开发·性能优化·实时·内核优化
荣世蓥4 天前
2.ARM_ARM是什么
arm开发
憧憬一下4 天前
Linux 内核中断描述符 (irq_desc) 的初始化与动态分配机制详解
arm开发·嵌入式硬件·嵌入式·c/c++·linux驱动开发
亿道电子4 天前
【ARM】MDK-E203 Undefined identifier
arm开发·stm32·单片机·arm
ShuQiHere4 天前
【ShuQiHere】️计算机架构:x86 与 ARM 指令集架构的对比与发展
arm开发·架构
CYRUS STUDIO4 天前
Android下的系统调用 (syscall),内联汇编syscall
android·linux·汇编·arm开发·arm·内联汇编