武汉创维特ARM教学系统-06异常中断处理

武汉创维特ARM教学系统-06异常中断处理

ID:42000432

大小:561.06 KB

页数:29页

时间:2019-09-06

武汉创维特ARM教学系统-06异常中断处理_第1页
武汉创维特ARM教学系统-06异常中断处理_第2页
武汉创维特ARM教学系统-06异常中断处理_第3页
武汉创维特ARM教学系统-06异常中断处理_第4页
武汉创维特ARM教学系统-06异常中断处理_第5页
资源描述:

《武汉创维特ARM教学系统-06异常中断处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、嵌入式系统教案武汉创维特信息技术有限公司7/15/2021提纲132ARM异常中断处理概述中断处理程序的安装第六章异常中断处理异常的响应和退出各种异常中断的处理42ARM异常中断处理概述当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。ARM体系结构中的异常,与8位/16位体系结构的中断有很大的相似之处,但异常与中断的概念并不完全等同。ARM异常中断处理概述3ARM体系结构所支持

2、的异常类型异常类型具体含义复位复位电平有效时,产生复位异常,程序跳转到复位处理程序处执行。未定义指令遇到不能处理的指令时,产生未定义指令异常。软件中断执行SWI指令产生,用于用户模式下的程序调用特权操作指令。指令预取中止处理器预取指令的地址不存在,或该地址不允许当前指令访问,产生指令预取中止异常。数据中止处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。IRQ外部中断请求有效,且CPSR中的I位为0时,产生IRQ异常。FIQ快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。ARM异常中断处理概述4异常向量表(

3、ExceptionVectors)地址异常进入模式0x0000,0000复位管理模式0x0000,0004未定义指令未定义模式0x0000,0008软件中断管理模式0x0000,000C中止(预取指令)中止模式0x0000,0010中止(数据)中止模式0x0000,0014保留保留0x0000,0018IRQIRQ0x0000,001CFIQFIQARM异常中断处理概述5异常优先级(ExceptionPriorities)优先级异常1(最高)复位2数据中止3FIQ4IRQ5预取指令中止6(最低)未定义指令、SWIARM异常中断处理概述6对异常的响应当一

4、个异常出现以后,ARM微处理器会执行以下几步操作将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。根据异常类型,强制设置CPSR的运行模式位。强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。对异常的响应7异常响应伪代码处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。ARM微处理器对异常的响应过程用伪码可以描述为:R14_=ReturnLinkSPSR_

5、e>=CPSRCPSR[4:0]=ExceptionModeNumberCPSR[5]=0If==ResetorFIQthenCPSR[6]=1CPSR[7]=1PC=ExceptionVectorAddress对异常的响应8从异常返回异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:将连接寄存器LR的值减去相应的偏移量后送到PC中。将SPSR复制回CPSR中。若在进入异常处理时设置了中断禁止位,要在此清除。可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。对异常的响应9中断处

6、理程序的安装一般在系统的启动代码中安装异常处理程序。大致可以分为两种情况:0地址处存储器为ROM/FLASH0地址处存储器为RAM中断处理程序的安装10在ROM/FLASH中安装中断处理程序在ROM/FLASH的异常中断向量表中,可以使用LDR指令直接向程序计数器PC中赋值,也可以直接使用跳转指令转到异常中断处理程序。使用LDR指令:Vector_entry:LDRPC,Reset_HandleLDRPC,Undef_HandleLDRPC,SWI_Handle中断处理程序的安装11在ROM/FLASH中安装中断处理程序LDRPC,Prefetch_H

7、andleLDRPC,Abort_HandleNOPLDRPC,IRQ_HandleLDRPC,FIQ_HandleVector_table:Reset_Handle:.LONGStart_BootUndef_Handle:.LONGUndef_Isr……中断处理程序的安装12在ROM/FLASH中安装中断处理程序使用跳转指令:Vector_entry:BReset_HandleBUndef_HandleBSWI_HandleBPrefetch_HandleBAbort_HandleNOPBIRQ_HandleBFIQ_Handle中断处理程序的安装1

8、3RAM中安装中断处理程序当0地址处为RAM时,中断向量表必须使用数据读取指令直接指向PC中赋

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。