- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
异常发生后,除了复位异常立即中止当前指令之外,其余异常都是在处理器完成当前指令后再执行异常处理程序。ARM处理器对异常中断的响应过程如下所述: 1) 保存处理器当前状态、中断屏蔽位以及条件标志位。这是通过将当前程序状态寄存器CPSR的内容保存到将要执行的异常中断对应的SPSR寄存器中实现的; 2) 设置当前程序状态寄存器CPSR中相应的位。包括:设置CPSR中的位,使处理器进入相应的模式;设置CPSR中的位,禁止IRQ中断,当进入FIQ模式时,禁止FIQ中断; 3) 将寄存器LR_mode设置成返回地址; 4.异常响应和返回过程 * 第六十三页,共一百二十三页。 4) 将程序计数器值(PC)设置成该异常中断的异常向量地址,从而跳转到相应的异常中断处理程序处执行。 异常处理完成后必须返回到原来程序处继续执行,为达到这一目的,需要执行四个基本操作: 恢复原来被保护的用户寄存器; 恢复被中断的程序的处理器状态,即将SPSR_mode寄存器内容复制到CPSR中; 返回到发生异常中断的指令的下一条指令处执行,即将LR_mode寄存器的内容复制到程序计数器PC中; 清除CPSR中的中断禁止标志I和F,开放外部中断和快速中断。 * 第六十四页,共一百二十三页。 (1)最大中断延迟 当FIQ使能时,最坏情况下FIQ的延迟时间包含: 1)Tsynemax(请求通过同步器的最长时间)。Tsynemax为4个处理器周期(由内核决定); 2)Tldm(最长指令的完成时间)。最长的指令是加载包括PC在内所有寄存器的LDM指令。Tldm在零等待状态系统中的执行时间为20个处理器周期; 3)Texc(数据中止异常进入时间)。Texc为3个处理器周期; 4)Tfiq(FIQ进入时间)。Tfiq为2个处理器周期(由内核决定)。 5.中断延迟 * 第六十五页,共一百二十三页。 总的延迟时间是29个处理器周期,在系统使用40MHz处理器时钟时,略微超过0.7ms。当在时间结束后,处理器执行在0x1C处的指令。 (2)最小中断延迟 FIQ或IRQ的最小中断延迟是请求通过同步器的时间加上Tfiq (共6个处理器周期)。 * 第六十六页,共一百二十三页。 当nRESET信号被拉低时(一般外部复位引脚电平的变化和芯片的其它复位源会改变这个内核信号),内核中止正在执行的指令,并且地址总线继续增加。 当nRESET信号再次变为高电平时,ARM处理器执行下列操作: 1) 强制M[4:0]变为b10011(管理模式); 2) 置位CPSR中的I和F位; 3) 清零CPSR中的T位; 4) 强制PC从地址0x00开始对下一条指令进行取指; 5) 返回到ARM状态并恢复执行。 在复位后,除PC和CPSR之外的所有寄存器的值都不确定。 6.复位 * 第六十七页,共一百二十三页。 ARM处理器是基于精简指令集计算机(RISC)原理设计的,指令集和相关译码机制较为简单。ARM体系结构具有32位ARM指令集和16位Thumb指令集,ARM指令集效率高,但是代码密度低;而Thumb指令集具有较高的代码密度,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。所有的ARM指令都是可以有条件执行的,而Thumb指令仅有一条指令具备条件执行功能。ARM程序和Thumb程序可相互调用,相互之间状态切换开销几乎为零。 * 12.3 ARM编程指令 第六十八页,共一百二十三页。 寻址方式是根据指令中给出的地址码字段来实现寻找真实操作地址的方式。ARM处理器有8种基本寻址方式。 1) 寄存器寻址; 2) 立即寻址; 3) 寄存器移位寻址; 4) 寄存器间接寻址; 5) 基址寻址; 6) 多寄存器直接寻址; 7) 堆栈寻址; 8) 相对寻址。 12.3.1 ARM处理器寻址方式 * 第六十九页,共一百二十三页。 1. 32位ARM指令集 (1)分支指令; (2)数据处理指令; (3)加载和存储指令; (4)协处理指令; (5)杂项指令 12.3.2 指令集 * ARM指令集提供了两条产生异常的指令,通过这两条指令可以用软件的方法实现异常。 软件中断指令(SWI); 断点中断指令(BKPT)。 2. 16位Thumb指令集 第七十页,共一百二十三页。 (1)分支指令 分支指令又称转移指令,用于实现程序流程的转移,这类指令可用来改变程序的执行流程或调用子程序。在ARM程序中可使用专门的分支指令,也可以通过直接向程序计数器(PC)写入转移地址值的方法
原创力文档


文档评论(0)