欢迎来到天天文库
浏览记录
ID:44960148
大小:490.50 KB
页数:59页
时间:2019-11-06
《第7章+ARM异常中断处理及编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ARM嵌入式体系结构与接口技术第7章ARM异常中断处理及编程第1章嵌入式系统基础知识第2章ARM技术概述第3章ARM的指令系统第4章ARM汇编语言程序设计第5章ARMRealviewMDK集成开发环境第6章GPIO编程第7章ARM异常中断处理及编程第8章串行通信接口课程安排:2第9章存储器接口第10章定时器第11章A/D转换器第12章LCD接口设计第13章温度监测仪开发实例课程安排:37.1ARM异常中断处理概述7.2ARM体系异常种类7.3ARM异常的优先级7.4ARM处理器模式和异常7.5ARM异常响应和处理程序返回7.
2、6ARM应用系统中异常中断处理程序的安装7.7ARM的SWI异常中断处理程序设计本章课程:47.8FIQ和IRQ异常中断程序设计7.9基于ARM9S3C2410X异常中断程序设计7.10小结7.11思考与练习本章课程:51、中断的概念中断是一个过程,是CPU在执行当前程序的过程中因硬件或软件的原因插入了另一段程序运行的过程。因硬件原因引起的中断过程的出现是不可预测的,即随机的,而软中断是事先安排的。2、中断源的概念我们把可以引起中断的信号源称之为中断源。3、中断优先级的概念ARM处理器中有7种类型的异常,按优先级从高到低的排
3、列如下:复位异常(Reset)、数据异常(DataAbort)、快速中断异常(FIQ)、外部中断异常(IRQ)、预取异常(PrefetchAbort)、软件中断(SWI)和未定义指令异常(Undefinedinstruction)7.1ARM异常中断处理概述6ARM的7种异常当异常发生时,处理器会把PC设置为一个特定的存储器地址。这一地址放在被称为向量表(vectortable)的特定地址范围内。向量表的入口是一些跳转指令,跳转到专门处理某个异常或中断的子程序。7.2ARM体系异常种类7当异常发生时,分组寄存器r14和SPS
4、R用于保存处理器状态,操作伪指令如下。R14_=returnlinkSPSR_=CPSRCPSR[4∶0]=exceptionmodenumberCPSR[5]=0/*进入ARM状态*/If==resetorFIQthenCPSR[6]=1/*屏蔽快速中断FIQ*/CPSR[7]=1/*屏蔽外部中断IRQ*/PC=exceptionvectoraddress异常返回时,SPSR内容恢复到CPSR,连接寄存器r14的内容恢复到程序计
5、数器PC。异常处理向量表7.2ARM体系异常种类81.复位异常当处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。复位异常中断通常用在下面两种情况下。系统上电。系统复位。当复位异常时,系统执行下列伪操作:R14_svc=UNPREDICTABLEvalueSPSR_svc=UNPREDICTABLEvalueCPSR[4∶0]=0b10011/*进入特权模式*/CPSR[5]=0/*处理器进入ARM状态*/CPSR[6]=1/*禁止快速中断*/CPSR[7]=1/*禁止外设中断*/Ifhig
6、hvectorsconfiguredthenPC=0xffff0000ElsePC=0x000000007.2ARM体系异常种类91.复位异常复位异常中断处理程序的主要功能。设置异常中断向量表。初始化数据栈和寄存器。初始化存储系统,如系统中的MMU等。初始化关键的I/O设备。使能中断。处理器切换到合适的模式。初始化C变量,跳转到应用程序执行。7.2ARM体系异常种类102.未定义指令异常当ARM处理器执行协处理器指令时,它必须等待一个外部协处理器应答后,才能真正执行这条指令。若协处理器没有相应,则发生未定义指令
7、异常当未定义异常发生时,系统执行下列的伪操作:r14_und=addressofnextinstructionaftertheundefinedinstructionSPSR_und=CPSRCPSR[4∶0]=0b11011/*进入未定义指令模式*/CPSR[5]=0/*处理器进入ARM状态*//*CPSR[6]保持不变*/CPSR[7]=1/*禁止外设中断*/IfhighvectorsconfiguredthenPC=0xffff0004ElsePC=0x000000047.2ARM体系异常种类113.软中断SWI软中断
8、异常发生时,处理器进入特权模式,执行一些特权模式下的操作系统功能。软中断异常发生时,处理器执行下列伪操作。r14_svc=addressofnextinstructionaftertheSWIinstructionSPSR_und=CPSRCPSR[4∶0]=0b10011/*进入特权模式
此文档下载收益归作者所有