cortex-m 2017 whitepaper (English and Chinese)

本文详细介绍了ARM Cortex-M处理器家族,包括Cortex-M0, M0+, M1, M3, M4, M7, M23和M33等不同型号的特点和应用场景。内容涵盖处理器的指令集、中断处理、调试和跟踪特性,并对比了各型号的性能和功耗。Cortex-M处理器家族因其低功耗、高性能和易用性,在微控制器市场广泛应用。" 78143169,5837693,链家成都房屋数据洞察与投资价值分析,"['数据爬取', '数据分析', '房地产', '投资分析']
摘要由CSDN通过智能技术生成

Cortex-M for Beginners - 2017_EN_v2.pdf:

https://pan.baidu.com/s/1CFW5TdzoZr7vsDFkG8MxCA   

提取码: t938


Cortex-M for Beginners - 2017_CN_v3.pdf:

https://pan.baidu.com/s/16qXRKAUJp2Q2UBTJWIxuRg

提取码: 3ras


白皮书
ARM Cortex-M 处理器入门
ARM Cortex-M 处理器家族介绍和比较
Joseph Yiu, 高级嵌入式技术经理, ARM
三月 2017
Copyright © 2013-2017 ARM Limited or its affiliates. All rights reserved.
Page 1 of 26White paper
概要
ARM Cortex-M 处理器家族现在有 8 款处理器成员。在本文中,我们会比较 Cortex-M 系列处理器之间的产品特
性,重点讲述如何根据产品应用选择正确的 Cortex-M 处理器。本文中会详细的对照 Cortex-M 系列处理器的指
令集和高级中断处理能力,以及 SoC 系统级特性,调试和追踪功能和性能的比较。
1 简介
今天, ARM Cortex-M 处理器家族有 8 款处理器成员。除此之外,ARM 的产品系列还有很多其他的处理器成员。
对很多初学者,甚至某些芯片设计经验丰富但是不熟悉 ARM 系列处理器的设计者来说,也是很容易混淆这些产
品的。不同的 ARM 处理器有不同的指令集,系统功能和性能。本文会深入展现 Cortex-M 系列处理器之间的关
键区别,以及它们和 ARM 其他系列处理器的不同。
1.1 ARM 处理器家族
多年来, ARM 已经研发了相当多的不同的处理器产品。 如下图中(图 1): ARM 处理器产品分为经典 ARM 处理
器系列和最新的 Cortex 处理器系列。并且根据应用范围的不同,ARM 处理器可以分类成 3 个系列。
Application Processors(应用处理器)–面向移动计算,智能手机,服务器等市场的的高端处理器。这类处理
器运行在很高的时钟频率(超过 1GHz),支持像 Linux,Android,MS Windows 和移动操作系统等完整操作系
统需要的内存管理单元(MMU)。 如果规划开发的产品需要运行上述其中的一个操作系统,你需要选择 ARM
应用处理器.
Real-time Processors (实时处理器)–面向实时应用的高性能处理器系列,例如硬盘控制器,汽车传动系统和
无线通讯的基带控制。多数实时处理器不支持 MMU,不过通常具有 MPU、Cache 和其他针对工业应用设计的存
储器功能。实时处理器运行在比较高的时钟频率(例如 200MHz 到 >1GHz ),响应延迟非常低。虽然实时处理
器不能运行完整版本的 Linux 和 Windows 操作系统, 但是支持大量的实时操作系统(RTOS)。
Microcontroller Processors(微控制器处理器)–微控制器处理器通常设计成面积很小和能效比很高。通常这
些处理器的流水线很短,最高时钟频率很低(虽然市场上有此类的处理器可以运行在 200Mhz 之上)。 并且,新
的 Cortex-M 处理器家族设计的非常容易使用。因此,ARM 微控制器处理器在单片机和深度嵌入式系统市场非常
成功和受欢迎。
Copyright © 2013-2017 ARM Limited or its affiliates. All rights reserved.
Page 2 of 26White paper
Application
Processors
(with MMU,
support Linux,
MS mobile OS)
Cortex-A73
System capability &
performance
Cortex-A72
Cortex-A57
Cortex-A15
Cortex-A9
Cortex-A35
Cortex-A32
Cortex-A53
Cortex-A17
Cortex-A12
Cortex-A7
Cortex-A8
Cortex-R52
Cortex-A5
ARM926 TM
ARM11 TM
series
Cortex-R8
Cortex-R7
Cortex-R5
Cortex-M7
Cortex-R4
Cortex-M33
Cortex-M4
ARM920T TM ,
ARM940T TM
ARM946 TM ,
ARM966 TM
Cortex-M1
(FPGA)
Classic ARM Processors
Microcontrollers
and deeply
embedded
Cortex-M23
Cortex-M3
ARM7 TM series
Real Time
Processors
Cortex-M0
Cortex-M0+
ARM Cortex Processors
图 1: 处理器家族
表 1 总结了三个处理器系列的主要特征。
Application processors
高时钟频率,长流水线,高
性能,对媒体处理支持
(NEON 指令集扩展)
, Real-time processors
高时钟频率,较长的流水
线,高确定性(中断延迟
低) Microcontroller processors
通常较短的流水线,超低功

系统特
性 内存管理单元 (MMU), cache
memory,
ARM TrustZone® 安全扩展 内存保护单元 (MPU), cache
memory, 紧耦合内存 (TCM) 目标市
场 移动计算,智能手机,高能
效服务器,高端微处理器 工业微控制器,汽车电子,
硬盘控制器,基带 内存保护单元(MPU), 嵌套向
量中断控制器 (NVIC), 唤醒
中断控制器 (WIC), 最新
ARM TrustZone® 安全扩展.
微控制器,深度嵌入系统
(例如,传感器,MEMS,
混合信号 IC, IoT)
设计特

表 1: 处理器特性总结
Copyright © 2013-2017 ARM Limited or its affiliates. All rights reserved.
Page 3 of 26White paper
1.2 Cortex-M 处理器家族
Cortex-M 处理器家族更多的集中在低性能端,但是这些处理器相比于许多微控制器使用的传统处理器性能仍然
很强大。例如,Cortex-M4 和 Cortex-M7 处理器应用在许多高性能的微控制器产品中,最大的时钟频率可以达到
400Mhz。
当然,性能不是选择处理器的唯一指标。在许多应用中,低功耗和成本是关键的选择指标。因此,Cortex-M 处
理器家族包含各种产品来满足不同的需求:
处理器
Cortex-M0
Cortex-M0+
Cortex-M1
Cortex-M3
Cortex-M4
Cortex-M7
Cortex-M23
Cortex-M33
描述
面向低成本,超低功耗的微控制器和深度嵌入应用的非常小的处理器(最小 12K 门电路)
针对小型嵌入式系统的最高能效的处理器,与 Cortex-M0 处理器接近的尺寸大小和编程模式,
但是具有扩展功能,如单周期 I/O 接口和向量表重定位功能
针对 FPGA 设计优化的小处理器,利用 FPGA 上的存储器块实现了紧耦合内存(TCM)。和
Cortex-M0 有相同的指令集
针对低功耗微控制器设计的处理器,面积小但是性能强劲,支持可以处理器快速处理复杂任务
的丰富指令集。具有硬件除法器和乘加指令(MAC).并且,M3 支持全面的调试和跟踪功能,
使软件开发者可以快速的开发他们的应用
不但具备 Cortex-M3 的所有功能,并且扩展了面向数字信号处理(DSP)的指令集,比如单指
令多数据指令(SMID)和更快的单周期 MAC 操作。此外,它还有一个可选的支持 IEEE754 浮
点标准的单精度浮点运算单元
针对高端微控制器和数据处理密集的应用开发的高性能处理器。具备 Cortex-M4 支持的所有指
令功能,扩展支持双精度浮点运算,并且具备扩展的存储器功能,例如 Cache 和紧耦合存储器
(TCM)
面向超低功耗,低成本应用设计的小尺寸处理器,和 Cortex-M0 相似,但是支持各种增强的指
令集和系统层面的功能特性。M23 还支持 TrustZone 安全扩展
主流的处理器设计,与之前的 Cortex-M3 和 Cortex-M4 处理器类似,但系统设计更灵活,能耗
比更高效,性能更高。M33 还支持 TrustZone 安全扩展
表 2: Cortex-M 处理器家族
不同于老的经典 ARM 处理器(例如,ARM7TDMI, ARM9), Cortex-M 处理器有一个非常不同的架构。例如:
- 仅支持 ARM Thumb® 指令,已扩展到同时支持 16 位和 32 位指令 Thumb-2 版本
-
-
内置的嵌套向量中断控制负责中断处理,自动处理中断优先级,中断屏蔽,中断嵌套和系统异常处理。
中断处理函数可以使用标准的 C 语言编程,嵌套中断处理机制避免了使用软件判断哪一个中断需要响应
处理。同时,中断响应速度是确定性的,低延迟的
- 向量表从跳转指令变为中断和系统异常处理函数的起始地址。
- 寄存器组和某些编程模式也做了改变。
这些变化意味着许多为经典 ARM 处理器编写的汇编代码需要修改,老的项目需要修改和重新编译才能迁移到
Cortex-M 的产品上。软件移植具体的细节记录在 ARM 文档:
ARM Cortex-M3 Processor Software Development for ARM7TDMI Processor Programmers
http://www.arm.com/files/pdf/Cortex-M3_programming_for_ARM7_developers.pdf
Copyright © 2013-2017 ARM Limited or its affiliates. All rights reserved.
Page 4 of 26White paper
1.3 Cortex-M 系列处理器的共同特性
Cortex-M0, M0+, M3, M4 and M7 之间有很多的相似之处,例如:
- 基本编程模型 (章节 Error! Reference source not found.)
- 嵌套向量中断控制器(NVIC)的中断响应管理
- 架构设计的休眠模式:睡眠模式和深度睡眠模式 (章节 Error! Reference source not found.)
- 操作系统支持特性 (章节 Error! Reference source not found.)
- 调试功能 (章节 Error! Reference source not found.)
-
易用性
例如,嵌套向量中断控制器是内置的中断控制器
SysTick
(System Tick
Timer)
Peripheral
Cortex-M
processor
Core
NMI
IRQs
NVIC
Peripherals
Configuration
registers
System
exceptions
Bus interface
Internal bus interconnect
图 2: Cortex-M 处理器的嵌套向量中断控制器
支持许多外围设备的中断输入,一个不可屏蔽的中断请求,一个来自内置时钟(SysTick)的中断请求(见章节
3.3)和一定数量的系统异常请求。NVIC 处理这些中断和异常的优先级和屏蔽管理。
NVIC 以及异常处理模型的更多的内容在章节 3.2 描述。其他 Cortex-M 处理器间的异同点会在本文的其余部分讲
解。
2 Cortex-M 处理器指令集
2.1 指令集简介
大多数情况下,应用程序代码可以用 C 或其他高级语言编写。但是,对 Cortex-M 处理器支持指令集的基本了解
有助于开发者针对具体应用选择合适的 Cortex-M 处理器。指令集(ISA)是处理器架构的一部分,Cortex-M 处
理器可以分为几个架构规范
Copyright © 2013-2017 ARM Limited or its affiliates. All rights reserved.
Page 5 of 26White paper
架构
ARMv6-M
ARMv7-M
ARMv8-M
描述
Cortex-M0, Cortex-M0+ 和 Cortex-M1 支持的架构
Cortex-M3, Cortex-M4 和 Cortex-M7 支持的架构.ARMv7-M 扩展的 DSP 类型指令
(SMID)也被称为 ARMv7E-M.
这个架构进一步分为:
Baseline 子规范– Cortex-M23 对应的架构
Mainline 子规范– Cortex-M33 对应的架构
For more information about ARMv8-M architecture, please see in ARMv8-M 关于
ARMv8-M 架构的更多信息,请参见 ARMv8-M 的 ARMv8-M Architecture Technical
Overview https://community.arm.com/docs/DOC-10896
表 3: Cortex-M 处理器 ARM 架构规范的规范
所有的 Cortex-M 处理器都支持 Thumb 指令集。整套 Thumb 指令集扩展到 Thumb-2 版本时变得相当大。但是,
不同的 Cortex-M 处理器支持不同的 Thumb 指令集的子集,如图 3 所示
Floating Point
DSP (SIMD, fast MAC)
ARMv7-M
Advanced data processing
bit field manipulations
ARMv6-M
General data processing
I/O control tasks
Cortex-M0/M0+
Cortex-M3
Cortex-M4
Cortex-M7
ARMv8-M
ARMv8-M
Baseline
Cortex-M23
Cortex-M33
Copyright © 2013-2017 ARM Limited or its affiliates. All rights reserved.
Page 6 of 26White paper
图 3: Cortex-M 处理器的指令集
2.2 Cortex-M0/M0+/M1 指令集
Cortex-M0/M0+/M1 处理器基于 ARMv6-M 架构。这是一个只支持 56 条指令的小指令集,大部分指令是 16 位指
令,如图 3 所示只占很小的一部分。但是,此类处理器中的寄存器和处理的数据长度是 32 位的。对于大多数简
单的 I/O 控制任务和普通的数据处理,这些指令已经足够了。这么小的指令集可以用很少的电路门数来实现处理
器设计,Cortex-M0 和 Cortex-M0+最小配置仅仅 12K 门。然而,其中的很多指令无法使用高位寄存器(R8 到
R12), 并且生成立即数的能力有限。这是平衡了超低功耗和性能需求的结果。
2.3 Cortex-M3 指令集
Cortex-M3 处理器是基于 ARMv7-M 架构的处理器,支持更丰富的指令集,包括许多 32 位指令,这些指令可以高
效的使用高位寄存器。另外,M3 还支持:
 查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值