ARM处理器的工作模式
ARM处理器状态
ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;
第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。
ARM处理器状态
进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
ARM处理器模式
ARM微处理器支持7种运行模式,分别为:
用户模式(usr):ARM处理器正常的程序执行状态。
快速中断模式(fiq):用于高速数据传输或通道处理。
外部中断模式(irq):用于通用的中断处理。
管理模式(svc):操作系统使用的保护模式。
数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):运行具有特权的操作系统任务。
定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
ARM处理器模式
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。
除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。
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处理器状态 ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理...
上传时间: 2013-11-15
上传用户:hanbeidang
资源简介:本论文是基于ARM处理器的无功补偿控制器设计
上传时间: 2013-07-17
上传用户:himbly
资源简介:采用多功能终端构成一种小型卫星通信网,要求各个终端能够像计算机一样支持多种各样的外部设备,并能实现组网功能。采用能支持嵌入式Linux操作系统的ARM处理器可很好地满足这种需求。本文重点研究这种智能终端中基于ARM处理器的嵌入式软件及其实现,主要内容...
上传时间: 2013-04-24
上传用户:liu_yuankang
资源简介:一个用于ARM处理器的Bootloader
上传时间: 2015-02-14
上传用户:hfmm633
资源简介:ATMEL at91系列ARM处理器的angle调试驻留源码
上传时间: 2013-12-18
上传用户:lz4v4
资源简介:美国ATMEL公司发布的基于AT91X40系列的ARM处理器的中断处理例程。
上传时间: 2015-03-11
上传用户:qiao8960
资源简介:ARM处理器的bootloader源码,很有参考价值,配有详细的注释和讲解。
上传时间: 2014-01-08
上传用户:lunshaomo
资源简介:用VHDL语言实现的ARM处理器的标准内核的源代码程序,可在重用
上传时间: 2013-12-11
上传用户:稀世之宝039
资源简介:基于ARM处理器的嵌入式实时系统编程,本书叙述详尽,有很好的参考价值
上传时间: 2015-04-04
上传用户:cmc_68289287
资源简介:飞利浦公司LPC21x系列ARM处理器的多个应用设计文档
上传时间: 2014-01-25
上传用户:dave520l
资源简介:ARM处理器的低功耗程序,可以使用在电池供电的项目中,目标CPU为LPC
上传时间: 2015-05-22
上传用户:aa17807091
资源简介:基于ARM处理器的S3C44Bx芯片,开发的LCD驱动程序,支持16位RGB,不需要操作系统支持。
上传时间: 2015-05-30
上传用户:youlongjian0
资源简介:自己编写的ARM处理器的指令集仿真,其中包含测试程序。执行其中的MAKE就可以了
上传时间: 2015-06-04
上传用户:sy_jiadeyi
资源简介:关于ARM处理器的一些学习源程序,能让你在短时间内掌握ARM的编程方法!
上传时间: 2013-12-21
上传用户:569342831
资源简介:针对三星ARM处理器的flash烧写程序,可以将二进制代码写入flash。
上传时间: 2014-01-15
上传用户:561596
资源简介:ARM处理器开发:介绍了ARM处理器的开发过程
上传时间: 2015-09-11
上传用户:changeboy
资源简介:該程序可以將DOS的工作模式進行轉變,由實模式進入保護模式.想了解計算机底層的人一定會喜歡,呵呵!
上传时间: 2013-12-09
上传用户:cc1
资源简介:基于ARM处理器的数控电源设计 好不容易找到的 分享下
上传时间: 2013-12-22
上传用户:lnnn30
资源简介:AT917S64,ARM处理器的程序。有中断的应用。
上传时间: 2014-01-15
上传用户:杜莹12345
资源简介:AT917S64,ARM处理器的程序。点灯的应用。
上传时间: 2015-11-08
上传用户:Zxcvbnm
资源简介:AT917S64,ARM处理器的程序。有中断,点灯,定时器,串口的应用。
上传时间: 2013-12-31
上传用户:daguda
资源简介:AT917S64,ARM处理器的程序。有中断,点灯,定时器,串口的应用。
上传时间: 2013-12-31
上传用户:cjl42111
资源简介:LINUX系统下基于ARM处理器的使用GPRS方式通过SOCKET数据包进行煤矿瓦斯监控的程序.这是在黑龙江省现场运行的程序源代码.
上传时间: 2014-01-22
上传用户:dongqiangqiang
资源简介:全面介绍ARM处理器的体系结构、编程模型、指令系统和开发工具的同时,以Samsung公司的一款基于以太网系统的ARM处理器-S3C4510B为核心,详细讲解系统的设计、调试,以及相关的软件设计和嵌入式操作系统的移植过程。通过阅读本书,可以使具备一定的系统设计能...
上传时间: 2015-12-05
上传用户:邶刖
资源简介:ARM处理器的JTAG调试代理软件,支持ARM7,ARM9等多款内核,界面友好,使用方便。
上传时间: 2016-02-07
上传用户:kytqcool
资源简介:基于ARM处理器的SMG240128A驱动程序
上传时间: 2013-11-25
上传用户:qlpqlq
资源简介:uCOS-II的绘图函数,这是一个ARM处理器的开发框架
上传时间: 2016-03-17
上传用户:jiahao131
资源简介:ARM处理器的初级入门教程,可以对ARM很快上手
上传时间: 2013-12-28
上传用户:jkhjkh1982
资源简介:本书在全面介绍ARM处理器的体系结构、编程模型、指令系统和开发工具的同时,以Samsung公司的一款基于以太网系统的ARM处理器-S3C4510B为核心,详细讲解系统的设计、调试,以及相关的软件设计和嵌入式操作系统的移植、应用程序的开发、设备驱动程序的开发过程...
上传时间: 2016-04-19
上传用户:
资源简介:实现单态和工厂的工作模式,是spring的重中之重,欢迎大家下载!
上传时间: 2016-08-23
上传用户:dapangxie