02 ARM Cortex-M处理器
文章目录
理论
概述
ARM(Advanced RISC Machine)
名称
一类微处理器的统称+公司的名字+一类技术的名称
RISC(精简指令集)
ARM 处理器采用RISC(精简指令集)结构,RISC 处理器简化了处理器结构、减少了复杂功能的指令,同时支持处理器扩展。
特点
小体积、低功耗、低成本、高性能
支持Thumb(16bit)/ARM(32bit)双指令集,能很好地兼顾性能与代码密度
Thumb指令集比ARM指令集有更高的代码密度
编写具有同样功能的一段代码,编译器编译后,占用的空间越大,则代码密度低,也就是效率低。反之,代码密度高,执行效率高。
大量使用寄存器,指令执行速度更快
大多数数据操作都在寄存器中完成,更多单周期指令,便于指令流水线执行
寻址方式灵活简单,执行效率高
指令长度固定
ARM体系结构版本
ARM处理器
ARM体系结构版本
ARM 处理器真正的版本是以体系结构(指令集架构)的版本号来区分的。到目前为止,已经发布了V1~V8
共8 个版本。
1. V1架构(ARM1)
-基本的数据处理指令(无乘法)
-字节、半字和字的Load/Store指令
-转移指令,包括子程序的调用和链接指令
-软件中断指令(Software Interrupt,SWI)
供操作系统使用
-26位寻址空间(64MB)
2. V2架构(ARM2,ARM3)
-增加乘法和乘法指令
-增加支持协处理器的操作
-增加快速中断模式
-增加SWP(Swap Word,字数据交换指令)/SWPB(Swap Byte,字节数据交换指令)的存储器和寄存器交换指令
3. V3架构(ARM6)
-增加了MRS/MSR指令,访问新增的CPSR/SPSR寄存器;
-增加了异常处理返回;
-寻址空间4GB
4. V4架构(ARM7,ARM9)
-增加符号化和非符号化半字及符号化字节的存取指令
-增加16位的Thumb指令
-完善软件中断SWI指令
-增加处理器管理模式(SVC)
5. V5架构(ARM10)
-带有链接和交换的转移BLX指令
-计数前导零CLZ指令
-BRK中断指令
-增加了一些信号处理的指令
6.V6架构
增加了SIMD功能扩展,为包括音频/视频处理在内的应用系统提供优化功能
异常处理和中断处理得以改进,实时任务处理能力增强
7. V7架构----- Cortex-M4所用
-32位、16位混合编码指令
-增强了SIMD、DSP功能扩展,为OS、音视频处理应用系统提供优化功能
8. V8架构
-ARM 公司首款支持64 位指令集的处理器架构
-包括64 位通用寄存器、SP(堆栈指针)和PC(程序计数器)64 位数据处理和扩展的虚拟寻址
V8架构支持三个主要指令集:
A32(或ARM)
32 位固定长度指令集,通过不同架构变体增强,部分32 位架构执行环境现在称为AArch32
T32(Thumb)
是以16 位固定长度指令集的形式引入的,随后在引入Thumb-2技术时增强为16 位和32 位混合长度指令集
A64
提供与ARM 和Thumb 指令集类似功能的32 位固定长度指令集,它是一种AArch64 指令集
ARM处理器核简介
ARM公司开发了许多系列的ARM处理器核,目前最新的系列已经是ARM11、Cortex了。目前应用比较
广泛的系列是:ARM7、ARM9、ARM9、EARM10E、ARM11、SecurCore、Xscale 和Cortex系列
ARM处理器核简介(约2000~2010年):
➢ARM7、ARM9(V4)
➢ARM10(V5,向量浮点(VFP) )
➢ARM11(V6,350MHz~1G)
SecurCore
该系列涵盖了SC100、SC110、SC200和SC210处理核。该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全IC(Integrated Circuit)开发提供独特的32位系统设计,并具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。
-灵活的保护单元->确保操作系统和应用数据的安全
-采用软内核技术->防止外部对其进行扫描探测
-可集成用户自己的安全特性和其他协处理器
Xscale
Intel Xscale微控制器提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。功耗较大,没有新发展。
Cortex
Cortex-A:Applications
用于复杂操作系统和用户应用程序,追求高时钟频率、高性能、合理功耗;
支持ARM、Thumb、Thumb-2指令集,功能强大,可运行大型OS
ARM Cortex-A 系列主要的处理器大体有:Cortex-A5 、Cortex-A8 、Cortex-A9、Cortex-A53 等
Cortex-M:MCU
追求低成本、低功耗
针对低成本应用优化的微控制器,可为超低功耗的嵌入式计算应用提供最佳解决方案;
比Cortex-R 处理器更加精简,有更短的流水线、更简单的指令集、更少的运算单元和调试单元。
Cortex-R:Real time
实时响应、合理性能、较低功耗;主要针对要求可靠性和实时响应的嵌入式系统
高性能:与高时钟频率相结合的快速处理能力;
实时:不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理;
安全:具有高容错能力的可靠且可信的系统
经济实惠:相同价位下,可实现功耗和面积的最佳性能
Cortex-M 处理器内核及功能介绍
嵌入式处理器内核
Cortex-M 处理器主要包括Cortex-M0、Cortex-M3、Cortex-M4 和Cortex-M7。
Cortex-M0
核心架构:ARMv6-M
<48MHz,32KB RAM
处理器内核包括寄存器组、算术逻辑单元(ALU)、数据总线和控制逻辑。寄存器组包含16 个32 位寄存器,还有一些特殊功能寄存器;
#嵌套向量中断控制器(Nested Vectored Interrupt Controller,NVIC)
每次最多可以处理32 个中断请求和一个不可屏蔽中断(NMI)输入。NVIC 比较正在执行中断和处于请求状态中断的优先级,然后自动执行高优先级中断。当需要处理一个中断时,NVIC 会和处理器进行通信,通知处理