嵌入式系统(二):ARM芯片及体系架构(上)

一、 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指令访问,而且它们也没有存储器地址。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值