ARM探索之旅 | 一、带你认识ARM Cortex-M阵营

发布者:TranquilSoul最新更新时间:2021-07-19 来源: eefocus关键字:ARM  Cortex-M  阵营 手机看文章 扫描二维码
随时随地手机看文章

引言

笔者接触嵌入式领域软件开发已近五年,几乎用的都是 ARM Cortex M 内核系列的微控制器。在这五年期间,感谢C语言编译器的存在,让我不用接触汇编即可进行开发,但是彷佛也错过了一些风景,没有领域到编译器之美和CPU之美,所以决定周末无聊的休息时间通过寻找资料、动手实验、得出结论的方法来探索 ARM CPU 架构的美妙,以及C语言编译器的奥秘。(因为我个人实在是不赞同学校中微机原理类课程的教学方法)。


一、ARM CPU Architecture

ARM CPU架构是一个用于计算机处理器的精简指令集(RISC)架构家族。它是世界上最普遍的处理器架构,从传感器、可穿戴设备、智能手机、到超级计算机,每年会有数十亿基于ARM的设备出货。


ARM CPU架构基于RISC精简指令集,包括:

  • 一个统一的寄存器文件,其中指令不限于作用于特定的寄存器;

  • 一种加载或存储架构,其中数据处理仅对寄存器内容进行,而不是直接对内存内容进行;

  • 简单的寻址模式,所有加载或者存储模式仅由寄存器内容和指令字段决定。

根据不同的应用场景,ARM CPU架构分为:

架构定义使用案例实现(处理器内核)
A系列复杂的电脑应用(服务器、网络设备、手机、TV)Cortex-A、Neoverse
R系列用于需要实时响应的场景(严格的安全性应用、需要确定响应的应用、自动驾驶)Cortex-R
M系列功耗和尺寸比较重要的设备,尤其嵌入式设备和IoT设备,比如小型传感器、通信模组、智能家居产品等Cortex-M

在本系列文章中,我们将以Cortex M内核为主进行探索,不去考虑Cortex A 系列和Cortex R系列。


二、Cortex M内核

Cortex-M处理器家族基于ARM M 架构定义,为嵌入式系统提供了低延迟和高度确定的操作,主要包括的Cortex-M系列内核如下图:

从图中大致可以看出:

① Cortex-M0、Cortex-M0+、Cortex-M1系列内核使用Armv6-M架构,常用的Cortex-M3、Cortex M4、Cortex M7系列内核使用Armv7-M架构,Cortex-M23系列使用Armv8-M Baseline架构,Cortex-M33、Cortex-M33P、Cortex-M55系列使用Armv8-M Mainline架构。

② 从Coretx-M23系列开始,Cortex-M内核中开始拥有TrustZone特性。

③ Cortex-M4、CortexM7、Cortex-M33、Cortex-M35P、Cortex-M55系列中才有数字信号处理扩展(DSP)。

④ Cortex-M33、Cortex-M55系列中开始拥有ARM自定义指令。

⑤ Cortex-M33、Cortex-M35P、Cortex M55系列拥有协处理器接口。

接下来我们一一了解。


1. Cortex M0

Cortex M0处理器是ARM最小的处理器之一,主要特点是小体积,目的是使开发人员能够在8位的价格点上实现32位的性能。

Cortex M0处理器使用AHB-Lite总线、拥有三级流水线,支持部分Thumb/Thumb-2 指令集。

2. Cortex M0+

Cortex M0+处理器在Cortex M0处理器的基础上,进一步降低了功耗,提升了性能。Cortex M0+处理器使用 AMBA AHB-Lite 总线、降低为两级流水线,支持部分Thumb/Thumb-2 指令集。

3. Cortex M1

Cortex M1是首个专为FPGA上的实现而设计的处理器。使用 AMBA AHB-Lite 总线、三级流水线,支持部分Thumb/Thumb-2 指令集。

4. Cortex M3

Cortex-M3处理器是专为高性能、低成本平台开发设计的,包括汽车车身系统、工业控制系统无线网络、传感器等,使用 3个 AMBA AHB-Lite总线 (哈佛总线架构),三级流水线,支持部分Thumb/Thumb-2 指令集、支持8 to 256优先级等级。


5. Cortex M4

Cortex-M4处理器是一款高效的嵌入式处理器,使用 3个 AMBA AHB-Lite总线 (哈佛总线架构),三级流水线,支持Thumb/Thumb-2 部分指令集,支持8 to 256优先级等级。相比CortexM3,增加了DSP扩展、可选的单精度浮点单元。

6. Cortex M7

Cortex M7处理器是一款高性能、节能的处理器,6级大规模流水线,支持Thumb/Thumb-2 指令集,支持8 to 256优先级等级,支持DSP扩展、可选的单精度浮点单元,使用 1 个64-bit AMBA4 AXI总线, 1 个 32-bit AHB 外设接口、1 个 为外部主机访问TCMs内存提供的32-bit AMBA AHB 从机接口,拥有指令cache、数据cache、指令TCM、数据TCM。

7. Cortex M23

Cortex M23处理器是一款非常简洁的处理器,对于大多数需要安全性的IoT和嵌入式应用,带有TrustZone的Cortex-M23是一个理想的处理器。


Cotex-M23使用 Armv8-M baseline 架构,拥有2级流水线,使用 AMBA 5 AHB 总线,支持Thumb/Thumb-2 部分指令集,支持4个优先级等级。还增加了指令支持硬件单周期乘法(32x32)和快速除法(32/32)。

8. Cortex M33

Cortex-M33适用于需要有效安全性或者数字信号控制的嵌入式和IoT应用场景。Cortex-M33有非常多的可选特性,包括DSP扩展、用于硬件强制隔离的TrustZone安全特性、一个协处理器接口、内存保护单元、浮点计算单元。


Cotex-M33使用 Armv8-M Mainline 架构,拥有3级流水线,使用 2 个 AMBA5 AHB 总线(哈佛架构),支持Thumb/Thumb-2 指令集,支持8 to 256个中断优先级等级,可选的TrustZone for Armv8-M支持,DSP扩展中支持可选的 DSP/SIMD 指令,可选的协处理器接口支持。


推荐傻孩子大佬的一篇文章:深度剖析,简单粗暴,详解Cortex-M23/33特性。


9. Cortex M35P

Cortex-M35P处理器使用TrustZone for Armv8-M,具有硬件安全和可选的软件隔离特性。对于试图阻止物理篡改并希望获得更高级别安全认证的嵌入式开发人员,ARM提供了Cortex-M35P这款处理器。

Cotex-M35P使用 Armv8-M Mainline 架构,拥有3级流水线,使用 2 个 AMBA5 AHB 总线(哈佛架构),支持Thumb/Thumb-2 指令集,支持8 to 256个中断优先级等级,具有可选的协处理器接口支持、TrustZone for Armv8-M支持、DSP支持,并且具有物理安全特性,内置保护,防止入侵和非入侵式攻击。

10. Cortex M55

目前最新一代的Cortex M系列处理器为Cortex M55。

Cortex-M55是首个基于Armv8.1-M架构的处理器,采用ARM Helium技术(MVE,M系列矢量扩展),为下一代小型嵌入式设备带来了增强的机器学习水平和信号处理的性能,包括可穿戴设备,智能语音设备等。


Cotex-M55拥有4级流水线,使用 AMBA 5 AXI5 64-bit 主机总线,可选的64bit协处理器接口支持、可选的TrustZone支持,可选的Helium技术支持,DSP扩展中支持32位DSP/SIMD指令扩展。

总结

认识了Cortex-M阵营都有哪些成员后,可以看到ARM Cortex-M 越来越注重安全性能和AI性能,这也给了我们一个发展方向,未来物联网的发展也不再是仅限于对接一下云平台上报数据这么简单,而是更多的提升物联网设备安全能力和AI能力,毕竟硬件设备遭遇入侵比电脑中毒更加可怕,如果端侧AI处理能力大大提升,则数据处理可直接在终端中完成,而不用去消耗不必要的云端算力~


至此,ARM探索之旅第一站就结束啦!下一站再会!

关键字:ARM  Cortex-M  阵营 引用地址:ARM探索之旅 | 一、带你认识ARM Cortex-M阵营

上一篇:ARM探索之旅 | 二、ARM Cortex-M 用什么指令集?
下一篇:ARM探索之旅 03 | 如何使用 ARM FPU 加速浮点计算

推荐阅读最新更新时间:2024-11-05 22:13

ARM汇编 控制伪指令之一
汇编控制伪指令用于控制汇编程序的执行流程,常用的汇编控制伪指令包括以下几条: IF 、 ELSE 、 ENDIF WHILE 、 WEND MACRO 、 MEND MEXIT 1、 IF、ELSE、ENDIF 语法格式: IF 逻辑表达式 指令序列 1 ELSE 指令序列 2 ENDIF IF 、 ELSE 、 ENDIF 伪指令能根据条件的成立与否决定是否执行某个指令序列。当 IF 后面的逻辑表 达式为真,则执行指令序列 1 ,否则执行指令序列 2 。其中, ELSE 及指令序列
[单片机]
ARM汇编之MOV PC,LR
BL NEXT ;跳转到子程序 ......... ;NEXT处执行 NEXT .......... MOV PC,LR ;从子程序返回 这里的BL是跳转的意思,LR(R14)保存了返回地址,PC(R15)是当前地址,把LR给PC就是从子程序返回。 1.SP(R13)、 LR(R14)、PC(R15) 2.LR(R14)的作用问题,这个LR一般来说有两个作用: (1)当使用bl或者blx跳转到子过程的时候,r14保存了返回地址,可以在调用过程结尾恢复。 (2)异常中断发生时,这个异常模式特定的物理R14被设置成该异常模式将要
[单片机]
ARM的开发步骤:看后开发思路会比较清晰了
做个最小系统板: 如果你从没有做过ARM的开发,建议你一开始不要贪大求全,把所有的应用都做好,因为ARM的启动方式和dsp或单片机有所不同,往往会遇到各种问题,所以建议先布一个仅有Flash,SRAM或SDRAM、CPU、JTAG、和复位信号的小系统板,留出扩展接口。使最小系统能够正常运行,你的任务就完成了一半,好在ARM的外围接口基本都是标准接口,如果你已有这些硬件的布线经验,这对你来讲是一件很容易的事情。 2. 写启动代码,根据硬件地址先写一个能够启动的小代码,包括以下部分: 初始化端口,屏蔽中断,把程序拷贝到SRAM中;完成代码的重映射;配置中断句柄,连接到C语言入口。也许你看到给你的一些示例程序当中,bootloa
[单片机]
嵌入式Linux下ARM处理器与DSP的数据通信
摘要:本文通过一个开发实例详细说明如何通过DSP的HPI接口与运行Linux操作系统的ARM架构处理器进行数据通信。给出接口部分的实际电路和ARM-Linux下驱动程序的开发过程。 关键词:设备驱动程序 嵌入式Linux HPI ARM DSP 1 引言 基于ARM核心处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。 内核源码开放的Linux与ARM体系处理器相结合,可以发挥Linux系统支持各种协议及存在多进程调度机制的优点,从而使开发周期缩短,扩展性增强。作为数字处理专用电路,DSP的数字信号处理能力十分强大,但对诸如任务管理、通信、
[工业控制]
高速数据采集系统在基于ARM动态称重系统中的应用
0 引言 随着经济的不断发展和各地物流业的不断扩大。有些人为了追求更高的局部利益,往往会擅自改装运输工具,增大车载量,从而导致超载现象屡见不鲜。根据“四次方原则”,车辆超载给我国的公路,桥梁等交通基础设施带来了极大的破坏力。 动态称重系统能够在车辆行驶过程中得知其重量,该系统由于不会给交通带来堵塞而受到各交通部门的青睐。由于动态称重过程中得到的信号是短历程、非平稳信号,信号中混杂了很多于拢信号。因此,为了净化信号,本设计引入了小波分析去噪和神经网络等新型算法,但这些算法计算量大的缺点严重影响到系统的运行效率,即系统只有等整个算法运行完后,才能开始新一轮的数据采集。为此,目前一些动态称重系统使用多CPU来解决这个问题,但这
[单片机]
高速数据采集系统在基于<font color='red'>ARM</font>动态称重系统中的应用
基于ARM9的嵌入式网关的研究
   摘 要: 介绍了一种基于ARM9的嵌入式以太网的设计方案。基于ARM内核微处理器S3C2410的功能特点及其外扩组成部分,分析了以太网控制器芯片RTL8019AS的性能以及与S3C2410的接口。在软件设计上,分析了BootLoader的作用,介绍了Linux的移植,并给出了通信程序的流程图,实现了嵌入式以太网的数据传输。    关键词: 嵌入式系统;网关;ARM;移植    引 言   无所不在的网络给网络接入设备带来了巨大的发展机遇。而随着网络接入市场的迅速增长,嵌入式网络接入开始成为嵌入式系统技术中最令人关注的一个领域。在嵌入式网络技术的推动下将会形成这样一个局面:在网络上传输的信息中,将有70%的信息来自嵌入式
[嵌入式]
ARM-Linux驱动--ADC驱动(中断方式)
硬件平台:FL2440 内核版本:2.6.28 主机平台:Ubuntu 11.04 内核版本:2.6.39 原创作品,转载请标明出处: http://blog.csdn.net/yming0221/archive/2011/06/26/6568937.aspx 这个驱动写了好久,因为原来的Linux内核编译的时候将触摸屏驱动编译进内核了,而触摸屏驱动里的ADC中断在注册的时候类型选择的是 IRQF_SAMPLE_RANDOM,不是共享类型,所以,自己写的ADC驱动在每次open的时候,总提示ADC中断注册失败。 解决方案: 重新配置内核,选择触摸屏驱动以模块的形式编译,而不是直接编译进内核,这样Linux在
[单片机]
<font color='red'>ARM</font>-Linux驱动--ADC驱动(中断方式)
ARM:Intel省电设计是两世代前的老把戏
    智慧型手机等行动装置除了讲求效能表现,省电节能也是十分重要的一环。晶片大厂如 ARM、Intel,均提出了不同的解决方案以取得效能与功耗间的最佳平衡。其中,ARM 阵营近期主打 big.LITTLE 大小核架构,以四个 Cortex-A15 效能核心搭配四个 Cortex-A7 省电核心,让系统依照运算需求在八个核心中进行调度。而 Intel 则主打动态时脉调节技术,调整每个核心的运算速度以降低不必要的功耗。针对对手的做法,ARM 处理器部门市场行销策略副总裁 Noel Hurley 表示,Intel 近期推出的动态时脉调节与 ARM 的 DVFS 技术类似,但 ARM 早在 2008 年就已将此技术导入 ARM 11 中,
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved