- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章
ARM处理器工作模式与异常中断处理
7.1 ARM处理器工作模式
ARM处理器共有7种工作模式,除用户(user)模式之外的其他6种处理模式统称为特权模式(Privileged Modes)。在这些模式下,程序可以访问所有的系统资源,也可以任意切换处理器模式。特权模式中除系统(system)模式之外的其他5种模式又统称为异常模式。
处理器模式可以通过软件控制进行切换,也可以通过外部中断或内部异常处理过程进行切换。运行在用户模式下的程序不能访问一些受操作系统保护的系统资源,也不能直接进行处理器模式切换,如果要想进行模式切换,可以产生异常处理,在异常处理过程中进行处理器模式的切换,这种体系架构可以使操作系统控制整个系统资源。
每一种异常模式中都有一组寄存器供异常处理程序使用,这样可以保证在进入异常模式时,用户模式下的寄存器不被破坏。
系统模式不是通过异常过程进入的,它和用户模式具有完全相同的寄存器。系统模式属于特权模式,可以访问所有系统资源,也可以直接进行处理器模式切换,主要供操作系统内核进程使用;通常操作系统内核进程需要访问所有的系统资源,同时该进程仍然使用用户模式下的寄存器组,而不是异常模式下的寄存器组,这样可以保证当异常发生时内核进程状态不被破坏。
ARM处理器的7种工作模式如表7-1所示。
表7-1 ARM处理器的7种工作模式
处理器工作模式
说 明
用户(user,usr)模式
正常程序运行模式
快速中断(FIQ,fiq)模式
异常模式
特权模式privileged modes
快速中断处理
外部中断(IRQ,irq)模式
普通中断处理
超级用户(supervisor,svc)模式
提供操作系统使用的一种保护模式,swi命令状态
数据访问终止(abort,abt)模式
用于虚拟存储和存储保护
未定义指令终止(undefined,und)模式
用于支持通过软件仿真硬件的协处理
系统(system,sys)模式
用于运行特权级的操作系统任务
对应于以上7种模式,ARM处理器有7组通用寄存器,如表7-2所示。
表7-2 ARM处理器各种工作模式下的寄存器
usr模式
sys模式
svc模式
abt模式
und模式
irq模式
fiq模式
R0
R0
R0
R0
R0
R0
R0
R1
R1
R1
R1
R1
R1
R1
R2
R2
R2
R2
R2
R2
R2
R3
R3
R3
R3
R3
R3
R3
R4
R4
R4
R4
R4
R4
R4
R5
R5
R5
R5
R5
R5
R5
R6
R6
R6
R6
R6
R6
R6
R7
R7
R7
R7
R7
R7
R7
R8
R8
R8
R8
R8
R8
R8_fiq
R9
R9
R9
R9
R9
R9
R9_fiq
R10
R10
R10
R10
R10
R10
R10_fiq
R11
R11
R11
R11
R11
R11
R11_fiq
R12
R12
R12
R12
R12
R12
R12_fiq
R13
R13
R13_svc
R13_abt
R13_und
R13_irq
R13_fiq
R14
R14
R14_svc
R14_abt
R14_und
R14_irq
R14_fiq
PC
PC
PC
PC
PC
PC
PC
CPSR
CPSR
CPSR
CPSR
CPSR
CPSR
CPSR
SPSR_svc
SPSR_abt
SPSR_und
SPSR_irq
SPSR_fiq
说明:
? ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括31个通用寄存器和6个状态寄存器,其中通用寄存器包括程序计数器(PC指针)及所有寄存器(均为32位)。
? ARM处理器中有用户模式、系统模式、特权模式、数据访问终止模式、未定义指令终止模式、IRQ中断模式、FIQ中断模式7种工作模式,每种工作模式都有R0~R15及CPSR共17个通用寄存器,而在5种异常中断(exception)模式中又各自拥有一个独立的SPSR寄存器用于存放当前状态寄存器的值。这些通用寄存器对于各种工作模式或部分工作模式有些是公用的,如表7-2所示。
? R8~R12对于快速中断FIQ模式之外的其他模式都是公用的,而FIQ模式另外有一套自己寄存器R8_fiq~R12_fiq,这样是为了在处理FIQ中断时不必保护R8~R12寄存器,从而提高响应速度。
? R13和R14除了用户模式和系统模式公用外,其他每种异常模式都有一套自己独立的寄存器:R13_svc、R14_svc/R13_abt、R14_abt/R13_und、R14_und/R13_irq、R14_irq/R13_fiq、R14_fiq,即R13和R14有6套物理寄存器实现。
? R13/sp寄存器
文档评论(0)