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

2024-02-25 14:12

本文主要是介绍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的内核信息的了解算是又多了一些完善了。

这篇关于1904_ARM Cortex M系列芯片特性小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745731

相关文章

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

Spring Boot读取配置文件的五种方式小结

《SpringBoot读取配置文件的五种方式小结》SpringBoot提供了灵活多样的方式来读取配置文件,这篇文章为大家介绍了5种常见的读取方式,文中的示例代码简洁易懂,大家可以根据自己的需要进... 目录1. 配置文件位置与加载顺序2. 读取配置文件的方式汇总方式一:使用 @Value 注解读取配置方式二

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Java中Scanner的用法示例小结

《Java中Scanner的用法示例小结》有时候我们在编写代码的时候可能会使用输入和输出,那Java也有自己的输入和输出,今天我们来探究一下,对JavaScanner用法相关知识感兴趣的朋友一起看看吧... 目录前言一 输出二 输入Scanner的使用多组输入三 综合练习:猜数字游戏猜数字前言有时候我们在

SQL BETWEEN 的常见用法小结

《SQLBETWEEN的常见用法小结》BETWEEN操作符是SQL中非常有用的工具,它允许你快速选取某个范围内的值,本文给大家介绍SQLBETWEEN的常见用法,感兴趣的朋友一起看看吧... 在SQL中,BETWEEN是一个操作符,用于选取介于两个值之间的数据。它包含这两个边界值。BETWEEN操作符常用

go 指针接收者和值接收者的区别小结

《go指针接收者和值接收者的区别小结》在Go语言中,值接收者和指针接收者是方法定义中的两种接收者类型,本文主要介绍了go指针接收者和值接收者的区别小结,文中通过示例代码介绍的非常详细,需要的朋友们下... 目录go 指针接收者和值接收者的区别易错点辨析go 指针接收者和值接收者的区别指针接收者和值接收者的