文章结构
一、 ARM芯片主要类别
ARM7、ARM9、ARM11, ARM芯片主要用于嵌入式微处理器功能
Cortex-M系列处理器主要是针对微控制器领域开发的,在该领域中,既需进行快速且具有高确定性的中断管理,又需将门数和功耗控制在最低。应用包括:混合信号设备、智能传感器、汽车电子等广泛微控制器方案应用领域。
Cortex-R,A–微处理器实时处理器为要求可靠性、高可用性、容错功能、可维护性和实时响应的嵌入式系统提供高性能计算解决方案。
1.一些相关名词-各类架构下比较重要的技术或者功能。
VFP:浮点体系结构 (VFP:Vector Floating Point)为半精度、单精度和双精度浮点运算中的浮点操作提供硬件支持。为汽车动力系统、车身控制应用和图像应用(如打印中的缩放、转换和字体生成以及图形中的 3D 转换、FFT 和过滤)中使用的浮点运算提供增强的性能。
SIMD:当前的智能手机和 Internet 设备必须提供高级媒体和图形性能,才具有竞争力。ARMv6 和 ARMv7 体系结构中的 SIMD 扩展改进了此类性能。可适用于众多软件应用领域,包括视频和音频编解码器,这些扩展将性能提高了将近 75% 或更多。
Jazelle®技术:提高执行环境(如 Java、.Net、MSIL、Python 和 Perl)速度。Jazelle技术是ARM提供的组合型硬件和软件解决方案。
TrustZone®安全扩展:提供可信计算,是系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理 (DRM) 和基于Web的服务。
NEON:通用 SIMD 引擎可有效处理当前和将来的多媒体格式,从而改善用户体验。
Virtualization:随着软件复杂性的提高,对于在同一个物理处理器上提供多种软件环境的要求也同时增多
NVIC(Nested Vectored Interrupt Controller): 是Cortex‐M系列处理器在内核上搭载了一个嵌套向量中断控制器,它与内核有紧密的耦合。NVIC提供如下的功能:1)可嵌套中断支持;2)向量中断支持;3)动态优先级调整支持;4)中断延迟大大的缩短;5)中断可屏蔽。
WIC(Wake-Up Interrupt Controller):是唤醒中断控制器,可以使处理器和NVIC处于一个低功耗睡眠的模式。
二、ARM Cortex-M3简介
ARM Cortex-M3为了占用微控制器领域所生产的
32-bit微处理器:32-bit的数据路径,32-bit寄存器,32-bit处理器接口。
“哈佛”结构:独立的指令总线和数据总线,允许数据和指令并行访问。这样,数据访问不再占用指令总线,从而提升性能。
MPU(内存保护单元):比较复杂的应用需要更多的存储系统功能,提供一个可选的MPU,在需要的情况下也可以使用外部缓存。主要起保护作用,让不希望用户需修改的部分受到保护,而不会受到伤害。
Cortex-M3选择了适合于微控制器应用的三级流水线,但增加了分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。
内部调试组件:提供调试操作支持,用于在硬件水平上支持调试操作,如指令断点、数据观察点等功能。
1.Cortex-M3功能说明
主要包括Cortex M3处理器核心、可嵌套中断向量控制器NVIC、总线阵列、存储保护单元MPU、闪存地址重载及断点单元FPB、数据监测点与跟踪DWT、仪表跟踪宏单元ITM、嵌入跟踪宏单元ETM、跟踪端口接口单元TPIU、AHB访问端口、串口线和JTAG调试口等。
2.Cortex M3的总线接口
最底部是I-code,D-code总线。中间4个事系统总线负责的区域,最上方有一部分是系统总线,剩下的是外部私有外设总线。
3.寄存器组说明
(1)低组寄存器,高组寄存器
(1)R0‐R7也被称为低组寄存器。所有指令都能访问它们。它们的字长全是32 位,复位后的初始值是不可预料的。
(2)R8‐R12也被称为高组寄存器。这是因为只有很少的16位Thumb 指令能访问它们,32位的指令则不受限制。它们也是32位字长,且复位后初始值是不可预料的。
(2)堆栈指针R13:
R13是堆栈指针,Cortex-M3处理器内核中共有两种堆栈指针,一般调用堆栈时用的是当前正在使用的那个,如果需要转换需要特定的代码。
主堆栈指针或写作SP_main(有特权访问内核或者异常服务时使用主堆栈指针)。这是默认的堆栈指针,它由OS内核、异常服务例程以及所有需要特权访问的应用程序代码来使用。
进程堆栈指针(PSP)(常规应用程序的代码),或写作SP_process。用于常规的应用程序代码(不处于异常服用例程中时)。
(3)链接寄存器R14
R14是链接寄存器(LR)。在一个汇编程序中,可以把它写做LR或R14。LR用于在调用子程序时存储返回地址,也用于异常返回。
程序计数寄存器R15
(4)程序计数寄存器R15
(5)特殊功能寄存器
Cortex‐M3 中的特殊功能寄存器包括:
① 程序状态寄存器组(PSRs 或xPSR)
所有处理器模式下都可访问当前程序状态寄存器CPSR。在每种异常模式下都有一个程序状态寄存器SPSR。
CPSR保存当前程序的状态,当异常出现时,SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。
② 中断屏蔽寄存器组(PRIMASK, FAULTMASK,以及BASEPRI)
③ 控制寄存器(CONTROL)
它们只能被专用的MSR 和MRS指令访问,而且它们也没有存储器地址。