- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第3章ARM微处理器的编程模型
2. 控制位 PSR的低8位(包括I、F、T和M[4:0])称为控制位,当发生异常时,控制位中的 T和M[4:0]位根据处理器的状态和模式自动被改变。如果处理器运行在特权模式,除了 T位外的其他位可以由软件修改。 中断禁止位I、F。 ● I=1 禁止IRQ中断。 ● F=1 禁止FIQ中断。 ● T标志位: 该位反映处理器的运行状态。本位反映处理器的状态,当T=1,处理器工作在THUMB状态;当T=0,处理器工作在ARM状态。当处理器发生状态改变时,自动设置本位。不准通过软件修改本位,否则处理器会进入到一个不可预知的状态。 ● 运行模式位M[4:0]: M0、M1、M2、M3、M4是模式位。这些位决定了处理器的运行模式。具体含义如表2-2所示。由表2-2 可知,并不是所有的运行模式位的组合都是有效的,仅有表中所列的组合有效。如果通过软件将其他的组合写入模式位,会导致处理器进入一个不可恢复的状态,产生复位。 3.保留位 PSR中的其余位为保留位,当改变PSR中的条件码标志位或者控制位时,保留位不要被改变,在程序中也不要使用保留位来存储数据。保留位将用于ARM版本的扩展。 4. 访问限制 用户模式下,仅允许访问(修改)条件标志码。 特权模式下,允许访问条件标志码、(修改)I、F与模式控制位,不允许修改T。 2.4 异常(Exceptions) 造成正常的程序流程发生暂时的停止,称之为异常,例如服务一个外部的中断请求。在处理异常之前,当前处理器的状态与下一条指令的地址必须保存,这样当异常服务子程序执行完后,原来的程序可以继续执行。几个异常可能同时发生,如果出现这种情况,将会按固定的优先级进行服务。ARM体系结构中的异常,与8位/16位体系结构的中断有很大的相似之处,但异常与中断的概念并不完全等同。 2.4.1 异常类型 ARM体系结构所支持的异常及具体含义如表2-3所示。 表2-3 ARM 体系结构所支持的异常 1.快速中断(FIQ:Fast Interrupt Request)异常 快速中断FIQ异常是为了支持数据传输或者通道处理而设计的。在ARM状态下,快速中断FIQ异常有足够的专用寄存器(R8_fir~R14_fir),如果不使用非专用的寄存器R0~R7,就可以不必执行寄存器进入堆栈保护、出栈恢复的指令,从而减小了系统上下文切换的开销,提高系统的实时性。若将CPSR的F位置为1,则会禁止FIQ中断,若将CPSR的F位清0,处理器会在指令执行时检查FIQ的输入。注意只有在特权模式下才能改变F位的状态。 可由外部通过对处理器上的nFIQ引脚输入低电平产生FIQ。不管是在ARM状态还是在Thumb状态下进入FIQ模式,FIQ处理程序均会执行以下指令从FIQ模式返回: SUBS PC,R14_fiq ,#4 该指令将寄存器R14_fiq 的值减去4 后,复制到程序计数器PC 中,从而实现从异常处理程序中的返回,同时将SPSR_fiq 寄存器的内容复制到当前程序状态寄存器CPSR 中。 2.一般中断(IRQ:Interrupt Request)异常 一般中断IRQ异常属于正常的中断请求,可通过对处理器的nIRQ引脚输入低电平产生,IRQ的优先级低于FIQ,当程序执行进入FIQ异常时,IRQ可能被屏蔽。若将CPSR的I位置为1,则会禁止IRQ中断,若将CPSR的I位清0,处理器会在指令执行完之前检查IRQ的输入。注意只有在特权模式下才能改变I位的状态。不管是在ARM状态还是在Thumb状态下进入IRQ模式,IRQ处理程序均会执行以下指令从IRQ模式返回: SUBS PC , R14_irq , #4 该指令将寄存器R14_irq 的值减去4 后,复制到程序计数器PC 中,从而实现从异常处理程序中的返回,同时将SPSR_irq寄存器的内容复制到当前程序状态寄存器CPSR 中。 3.中止(ABORT)异常 产生中止异常意味着对存储器的访问失败,由一个外部中止信号触发中止异常。ARM微处理器在存储器访问周期内检查是否发生中止异常。 中止异常包括两种类型: ● 指令预取中止:发生在指令预取时。 ● 数据中止:发生在数据访问时。 当指令预取访问存储器失败时,存储器系统向ARM处理器发出存储器中止(Abort)信号,预取的指令被记为无效,但只有当处理器试图执行无效指令时,指令预取中止异常才会发生,如果指令未被执行,例如在指令流水线中发生了转移,则预取指令中止不会发生。
您可能关注的文档
最近下载
- Unit 1 Fun numbers and letters (说课稿)-2024-2025学年人教PEP版(一起)(2024)英语二年级上册.docx VIP
- 印刷成本核算方式.docx VIP
- 森林防火教学课件.ppt VIP
- 二级保密资格档案目录(24盒)优质材料.doc VIP
- 2025水利工程五大员专业题库(含答案).docx VIP
- 图书馆业务知识培训ppt课件.pptx VIP
- 传感器智能传感器与无线传感器网络技术.pptx VIP
- 中国共产党基层组织选举工作条例学习宣贯ppt课件.pptx VIP
- 游消费者行为学(第二版)孙九霞全套PPT课件.pptx
- 东芝 e-STUDIO 2000AC 2500AC 彩色复印机维修手册(拆卸安装篇).pdf VIP
文档评论(0)