杭州嵌入式培训
达内杭州嵌入式培训中心

13732203138

热门课程

嵌入式ARM处理器体系

  • 时间:2018-03-27 17:36
  • 发布:杭州嵌入式培训
  • 来源:疑难解答

一、工作状态

1、ARM状态

此时ARM处理器工作于32位指令状态,所有指令均为32位宽度。

2、Thumb状态

此时ARM处理器工作于16位指令状态,所有指令均为16位宽度。代码密度大,占用的内存空间小。

对于特殊情况下必须执行ARM状态,如异常处理时,需将Thumb状态切换至ARM状态。

对于具有Thumb-2指令集的处理器,Thumb-2就是其Thumb状态。

3、调试状态

补充:

1)Cortex-M仅支持Thumb-2指令集,不支持32位ARM指令集。

2)除Cortex-M处理器之外,其他ARM处理器复位后开始执行代码时总是处于ARM状态

3)对于具有ARM状态与Thumb状态的处理器,状态的切换依赖于指令BX(BLX) Rn,寄存器Rn的最低位控制CPSR(当前状态控制寄存器)的T位,当Rn[0]=0,执行指令BXRn后,CPSR中的T位自动被清零,修改当前状态置于ARM状态。当Rn[0]=1,修改当前状态置于Thumb状态

4)ARM、Thumb、Thumb-2状态简单比较

二、寄存器组织

不同的cortex处理器型号有着不同的寄存器组织,若依据工作状态划分可划分为ARM状态下的寄存器组织、Thumb状态下的寄存器组织、Thumb-2状态下的寄存器组织。

下图为ARM状态下的寄存器组织,以cortex-M4为例

下图为Thumb-2状态下的寄存器组织,以cortex-M4为例

三、异常类型

Cortex-M4定义了以下异常类型:复位、NMI(不可屏蔽中断请求)、HardFault(异常响应错误)、MemManage(存储器管理)、BusFault、UsageFault、SVC、PendSV、SysTick(滴答计时)、IRQ(外部中断请求),如图为其详细信息

其中断向量表如图

四、存储器格式

在ARM中,定义32位为字数据,16位为半字数据,8位为字节数据,带FPU的处理器还支持浮点数据。作为32位处理器,cotex-M所支持的最大寻址空间为4GB(2的32次方B)

从图中可以看到,与Intel x86 I/O端口的独立编址不同,ARM采用存储器映像编址方式,对I/O端口等外设采用统一编址。

独立编址的优缺点:采用独立的I/O指令,系统运行速度快,且不占用存储器内存空间。但,由于采用独立的I/O指令,程序设计的灵活性差。

存储器映象编址的优缺点:I/O端口与存储器统一编址,存储器指令同样适用于I/O端口,可对I/O端口作众多复杂性操作,程序的灵活性好。但,由于I/O端口占用了内存空间,使得内存空间减少。

ARM有两种存储数据字的格式:大端模式(Big-Endian)、小端模式(Little-Endian)。

1)大端模式

在这种模式下,32位数据字以字节为最小单位划分,高字节存放在低地址中,低字节存放在高地址中。

2)小端模式

在这种模式下,32位数据字以字节为最小单位划分,低字节存放在低地址中,高字节存放在高地址中。

可通过AIRCR寄存器(ApplicationInterrupt and Reset Control Register)的第15位来设定。ENDIANNESS=0时,小端模式;ENDIANNESS=1时,大端模式。

最后,简单谈一下微处理器经常使用的两种技术:MMU存储器管理单元)和MPU(存储器保护单元)。MMU部件能把系统中不同类型的存储器(SRAM、Flash、SDRAM、ROM等)进行统一管理,通过地址映射,使需要运行在连续地址空间的软件可运行在不连续的物理存储器中,需要较大存储空间的软件可运行在较小容量的物理存储器中,此即虚拟存储器技术。MMU完成了虚拟地址到物理地址的映射。

上一篇:解决嵌入式视觉系统
下一篇:嵌入式Linux系统基础概念
选择城市和中心
贵州省

广西省

海南省