ARM处理器及ARM处理器工作模式

来源:本站
导读:目前正在解读《ARM处理器及ARM处理器工作模式》的相关信息,《ARM处理器及ARM处理器工作模式》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《ARM处理器及ARM处理器工作模式》的详细说明。
简介:ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;
第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。

ARM处理器状态

ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:

第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;

第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。

在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。

ARM处理器模式

ARM微处理器支持7种运行模式,分别为:

用户模式(usr):ARM处理器正常的程序执行状态。

快速中断模式(fiq):用于高速数据传输或通道处理。

外部中断模式(irq):用于通用的中断处理。

管理模式(svc):操作系统使用的保护模式。

数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

系统模式(sys):运行具有特权的操作系统任务。

定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

ARM寄存器

ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。

关于寄存器这里就不详细介绍了,有兴趣的人可以上网找找,很多这方面的资料。

异常处理

当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。当一个异常出现以后,ARM微处理器会执行以下几步操作:

进入异常处理的基本步骤:

将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。根据异常类型,强制设置CPSR的运行模式位。

强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。

ARM微处理器对异常的响应过程用伪码可以描述为:

R14_ = Return Link

SPSR_= CPSR

CPSR[4:0] = Exception Mode Number

CPSR[5] = 0 ;当运行于 ARM 工作状态时

If == Reset or FIQ then;当响应 FIQ 异常时,禁止新的 FIQ 异常

CPSR[6] = 1

PSR[7] = 1

PC = Exception Vector Address

异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:

将连接寄存器LR的值减去相应的偏移量后送到PC中。

将SPSR复制回CPSR中。

若在进入异常处理时设置了中断禁止位,要在此清除。

提醒:《ARM处理器及ARM处理器工作模式》最后刷新时间 2024-03-14 01:10:14,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《ARM处理器及ARM处理器工作模式》该内容的真实性请自行鉴别。