【ARM Cortex-M 系列 1.1 -- Cortex-M33 与 M4 差异 详细介绍】


请阅读【嵌入式开发学习必备专栏 之 Cortex-Mx 专栏】


文章目录

    • 背景
    • Cortex-M33 与 M4 差异
      • Cortex-M33
      • Cortex-M4
      • 关系和差异
      • 举例说明

背景

在移植 RT-Thread 到 瑞萨RA4M2(Cortex-M33)上时,遇到了hardfault 问题,最后使用了Cortex-M4中的调度相关的函数后,OS 可以正常调度了。所以这里做下 M33与 M4的关系梳理。

ARM Cortex-M33 和 Cortex-M4 都是 ARM 公司设计的32位RISC微处理器核心,它们属于 ARM Cortex-M 系列,专为微控制器和嵌入式系统设计。这两种核心都很受欢迎,并被广泛应用于各种低功耗和实时处理场景。尽管它们有许多共同点,但也存在一些关键的差异。

Cortex-M33 与 M4 差异

Cortex-M33

Cortex-M33 是基于 ARMv8-M 架构的处理器核心,其中包含了一些用于增强安全性、性能和能效的新特性。它引入了 TrustZone 技术,这是为微控制器提供的一种安全功能,允许设备在不受信任的应用代码和可信固件之间创建隔离的执行区域。

Cortex-M33 提供了以下特性:

  • ARMv8-M 架构 - 可选的浮点单元(FPU),支持单精度浮点运算
  • 优化的协处理器接口,允许更紧密地集成定制硬件加速器
  • TrustZone 技术,提供硬件级别的安全性
  • 支持可选的 ARMv8-M Memory Protection Unit (MPU)
  • 可选的 Digital Signal Processing (DSP) 指令
  • 更高性能的分支预测和指令缓存

Cortex-M4

Cortex-M4 是基于 ARMv7E-M 架构的处理器核心,专为需要数字信号处理(DSP)功能的应用而设计。虽然它不具备 Cortex-M33 的一些安全性特性,但它在数字信号和控制任务方面非常出色,特别是在音频和实时处理应用中。

Cortex-M4 主要特点包括:

  • ARMv7E-M 架构
  • 可选的浮点单元(FPU),支持单精度浮点运算
  • DSP 指令集,用于高效执行常见的信号处理操作
  • 不支持 TrustZone 技术 - 支持 Memory Protection Unit (MPU)

关系和差异

关系上,Cortex-M33 继承了 Cortex-M4 的许多特性,并在此基础上增加了新的安全和性能特性。

Cortex-M23Cortex-M0+ 的继任者,主打超低功耗;
Cortex-M33是Cortex-M3和Cortex-M4的继任者,性能更强,具有DSP浮点运算功能。
在这里插入图片描述

直观比较:Cortex-M23 = Cortex-M0/M0 + 硬件除法器 + 性能提升 +专门的栈溢出硬件检测+指令集不可忽略的小动作
+安全扩展(TrustZone for Armv8-M) +MPU开发者模型的友好化改进。

直观比较:Cortex-M33 =Cortex-M3/M4 + 性能提升 +专门的栈溢出硬件检测+指令集不可忽略的小动作
+安全扩展(TrustZone for Armv8-M)+MPU开发者模型的友好化改进。

Cortex-M33 在安全性和性能上的提升使其成为适用于更广泛的应用场景,特别是那些需要硬件安全的场合。

举例说明

假设您正在开发一个智能家居系统,该系统需要安全地处理来自传感器的数据,并控制家中的各种设备。在这种情况下,Cortex-M33 的 TrustZone 技术可以提供一个安全的执行环境,以确保敏感的数据和控制逻辑受到保护,不受恶意软件的影响。而在另外一种场景中,如果您正在开发一个需要快速数字信号处理能力的音频处理器,Cortex-M4 可能是更好的选择,因为它的 DSP 指令和浮点性能能很好地满足这类需求。

关于Cortex-M系列更多内容见:【ARM Cortex-M 系列 1 – Cortex-M0, M3, M4, M7, M33, M35P 差异】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/419178.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA的基础面试题二

​ 1.描述Servlet调用过程? 答案: (1)在浏览器输入地址,浏览器先去查找hosts文件,将主机名翻译为ip地址,如果找不到就再去查询dns服务器将主机名翻译成ip地址。 (2)浏…

keil软件仿真

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要…

无法打开浏览器开发者工具的可能解决方法

网页地址: https://jx.xyflv.cc/?url视频地址url 我在抖音里面抓了一个视频地址, 获取到响应的json数据, 找到里面的视频地址信息 这个网站很好用: https://www.jsont.run/ 可以使用js语法对json对象操作, 找到所有视频的url地址 打开网页: https://jx.xyflv.cc/?urlhttps:…

【UEFI基础】EDK网络框架(DHCP4)

DHCP4 DHCP4协议说明 DHCP是应用层的协议,DHCP报文是承载UDP上的高层协议报文,采用67(DHCP服务器)和68(DHCP客户端)两个端口号。 DHCP的全称是Dynamic Host Configuration Protocol,它的主要…

字节跳动 ByteHouse 云原生之路 – 计算存储分离与性能优化

01 起源 ByteHouse 的故事从字节跳动对于先进数据处理和分析的需求开始,这一需求随着公司业务规模的迅速扩张而日益增长,起源是对开源数据库管理系统 ClickHouse 的改造和增强。面对数据处理的高延迟、大规模数据操作的复杂性以及数据存储和处理成本的上…

【linux驱动】用户空间程序与内核模块交互-- IOCTL和Netlink

创建自定义的IOCTL(输入/输出控制)或Netlink命令以便用户空间程序与内核模块交互涉及几个步骤。这里将分别介绍这两种方法。 一、IOCTL 方法 1. 定义IOCTL命令 在内核模块中,需要使用宏定义你的IOCTL命令。通常情况下,IOCTL命令…

实战内网穿透NPS搭建过程

前提条件 首先你要有个公网IP的服务器,既然是内网穿透,那必然是通过公网IP或者域名访问本地服务。 官网下载地址 https://github.com/ehang-io/nps/releases 服务端 选择linux_amd64_server.tar.gz 客户端 选择windows_amd64_client.tar.gz 服…

EasyRecovery2024电脑数据恢复工具好不好用?

Ontrack是我们综述中的第一个产品,由于该软件的功效和广度,我认为它完全基于业务。有一个具有基本功能的免费版本和一系列付费版本,不仅可以恢复文件(免费版和家庭版),还可以创建磁盘映像/从 CD 和 DVD 恢复…

统计学-R语言-7.1

文章目录 前言假设检验的原理假设检验的原理提出假设做出决策表述结果效应量 总体均值的检验总体均值的检验(一个总体均值的检验) 练习 前言 本章主题是假设检验(hypothesis testing)。与参数估计一样,假设检验也是对总体参数感兴趣,如比例、比例间的差…

【PyTorch】在PyTorch中使用线性层和交叉熵损失函数进行数据分类

在PyTorch中使用线性层和交叉熵损失函数进行数据分类 前言: 在机器学习的众多任务中,分类问题无疑是最基础也是最重要的一环。本文将介绍如何在PyTorch框架下,使用线性层和交叉熵损失函数来解决分类问题。我们将以简单的Iris数据集作为起点…

数组中第K个最大元素(算法村第十关白银挑战)

215. 数组中的第K个最大元素 - 力扣(LeetCode) 给定整数数组 nums 和整数 k,请返回数组中第 **k** 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现…

JVM工作原理与实战(二十一):内存管理

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、不同语言的内存管理 1.C/C的内存管理 2.Java的内存管理 二、垃圾回收的对比 1.自动垃圾回收与手动垃圾回收的对比 2.优点与缺点 总结 前言 JVM作为Java程序的运行环境&#…