网站大量收购独家精品文档,联系QQ:2885784924

第8章 ARM系统中的中断系统.ppt

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 ARM系统中的中断系统

第8章 ARM系统中的中断系统 8.1 ARM系统中断系统概述 8.2 ARM系统中断控制器 8.3 ARM系统中断源 8.4 ARM系统中断模式 8.5 ARM系统中断控制器的寄存器控制 8.6 ARM系统中断应用编程 8.7 习 题 8.1 ARM系统中断系统概述 当正常的程序执行过程中发生暂时的停止的,称为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。 中断与堆栈设置和ARM体系结构紧密相关,ARM是一种支持多任务操作的系统内核,内部的结构完全适应多任务应用。 当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。当异常中断处理程序执行完成后,程序返回到发生中断指令的下条指令处执行。在进入异常中断处理程序时,要保存被中断程序的执行现场,从异常中断处理程序退出时,要恢复被中断程序的执行现场。 8.1.1 引起异常的原因 1.指令执行引起的异常 软件中断、未定义指令(包括所要求的协处理器不存在,但它是协处理器指令)、预取址中止(存储器故障)、数据中止。 2.外部产生的中断 复位、FIQ、IRQ。 8.1.2 ARM中异常中断的种类 1.复位(RESET) (1)当处理器复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行,包括系统加电和系统复位。 (2)通过设置PC跳转到复位中断向量处执行称为软复位。 2.未定义的指令 当ARM处理器或者是系统中的协处理器认为当前指令未定义时,产生未定义的指令异常中断,可以通过改异常中断机制仿真浮点向量运算。 3.软件中断 这是一个由用户定义的中断指令(SWI)。可用于用户模式下的程序调用特权操作指令。在实时操作系统中可以通过该机制实现系统功能调用。 4.指令预取终止(Prefetch Abort) 如果处理器预取指令的地址不存在,或者该地址不允许当前指令访问,当被预取的指令执行时,处理器产生指令预取终止异常中断。 5.数据访问终止(Data Abort) 如果数据访问指令的目标地址不存在,或者该地址不允许当前指令访问,处理器产生数据访问终止异常中断。 6.外部中断请求(IRQ) 当处理器的外部中断请求引脚有效,而且CPSR的寄存器的I控制位被清除时,处理器产生外部中断请求异常中断。系统中各外设通过该异常中断请求处理服务。 7.快速中断请求(FIQ) 当处理器的外部快速中断请求引脚有效,而且CPSR的F控制位被清除时,处理器产生外部中断请求异常中断。 8.1.3 异常的响应过程 除了复位异常外,当异常发生时,ARM处理器尽可能完成当前指令(除了复位异常)后,再去处理异常。并执行如下动作: 1.将引起异常指令的下一条指令的地址保存到新模式的R14中,若异常是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。例如:在软件中断异常SWI,指令MOV PC,R14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。 2.将CPSR的内容保存到要执行异常中断模式的SPSR中。 3.设置CPSR相应的位进入相应的中断模式。 4.通过设置CPSR的第7位来禁止IRQ。如果异常为快速中断和复位。则还要设置CPSR的第6位来禁止快速中断。 5.给PC强制赋向量地址值。 ARM处理器内核会自动执行以上几步,程序计数器PC总是跳转到相应的固定地址。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态,则异常处理返回时,自动切换到Thumb状态。 8.1.4 异常中断处理返回 异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回: 1.将所有修改过的用户寄存器从处理程序的保护栈中恢复。 2.将SPSR复制回CPSR中,将连接寄存器LR的值减去相应的偏移量后送到PC中。 3.若在进入异常处理时设置了中断禁止位,要在此清除。复位异常处理程序不需要返回。 8.1.5 ARM系统中的中断向量表 当一个异常或中断发生时,处理器会把PC设置为一个特定的存储器地址。这一地址放在一个被称为向量表(vector table)的特定地址范围内。向量表的入口是一些跳转指令,跳转到专门处理某个异常或中断的子程序。存储器映射地址0为向量表保留的。在有些处理器中,向量表可以选择定位在存储空间的更高地址(从偏移量0xffff00

文档评论(0)

cgtk187 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档