欢迎来到天天文库
浏览记录
ID:44207738
大小:108.00 KB
页数:8页
时间:2019-10-19
《ARM中的中断体制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、ARM中的中断体制2012-03-1318:22:06
2、分类:ARM裸机
3、字号订阅ARM中异常中断的类型:异常小断名称含义复位(Reset)当处理器复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常小断处理程序处执行。复位异常屮断通常用在下而儿种情况:1、系统加电时2、系统复位时3、跳转到复位中断向量处执行,称为软复位未定义的指令当ARM处理器或者是系统中协处理器认为当前指令未定义时,产生未定义指令异常小断。可以通过该异常屮断机制仿真浮点向量运算。软件中断(softwareinterruptSWT)这是一个由用户定义的中断指令。可以用于用户模式下程序调用特权操作指令。
4、在实时操作系统(RT0S)中可以通过该机制实现系统功能调用指令预取屮止(PrcfcchAbort)如果处理器预取指令的地址不存在,或者该地址不允许当前指令访问,当该被预取的指令执行时,处理器产生指令预取屮止异常中断数据访问中止(DataAbort)如果数据访问指令的H标地址不存在,或者该地址不允许当前指令访问,处理器产生数据访问中止异常中断外部中断请求(IRQ)当处理器的外部中断请求引脚有效,而且CPSR寄存器的I控制位被清除时,处理器产生外部中断请求(IRQ)异常中断。系统屮齐外设通常通过该异常小断请求处理器服务快速中断请求(FTQ)当处理器的外部快速中断请求引脚有效,而
5、且CPSR寄存器的F控制位被清除时,处理器产生外部屮断请求(FIQ)异常屮断ARM处理器对异常中断的响应过程:1.ARM处理器对显常中断的响应过程如卜•所述。2.保存处理器当前状态、中断屏蔽位以及各条件标志位。这是通过将当前程序状态寄存器CPSR的内容保存到将要执行的界常屮断对应的SPSR寄存器屮实现的。各界常屮断有白己的物理SPSR寄存器。3.设置当前程序状态寄存器CPSR中相应的位。包括:设置CPSR中的位,使处理器进入相应的执行模式;设置CPSR中的位,禁IRQ中断,当进入FIQ模式时,禁止FIQ屮断。4.将寄存器lr_mode设置成返回地址。5.将程序计数器值(PC
6、),设置成该杲常中断的中断向量地址,从而跳转到相应杲常中断处理程序处执行。上述处理器对片常中断的响应过程可以用如下的伪代码描述。R14_=returnlinkSPSR_=CPSRCPSR[4:0]=expectionmodenumber/*当FIQ异常中断时,禁止新的FIQ中断*/if==ResetorFIQthenCPSR[6]=1/*禁止IRQ中断7CPSR[7]=1/*程序计数器跳转到向屋表所指的代码段*/PC=exceptionvectoraddress从异常中断处理程序
7、中返回:1.恢复被中断程序的处理器状态,即将SPSR_mode寄存器内容复制到CPSR中。2.返回到发生界常中断的指令下一条指令处执行,即将lr_mode寄存器的内容复制到程序计数器PC中。注意:复位异常屮断处理程序不需要返回。在复位异常屮断处理程序开始整个用户程序的执行,因而它不需要返回(此处说的不明白,看下面的我从刃外找來的资料)以上内容全部摘白杜春雷的《AR体系结构与编程》注意:复位异常中断处理器程序没有相应的SPSR,所以在返回时只需要将状态位设置为用户模式,然后跳转到中断处的下一条代码即可。附:《ARM中的异常和中断》ARM处理器屮主耍有7个异常(2个中断界常):
8、1、复位异常;在以ARM为核的单片机中,常把下列事件作为引起复位的原因。?上电复位:在上电后,复位使内部达到预定的状态,特别是程序跳到初始入口;?复位引脚上的复位脉冲:这是由外部其他控制信号引起的;?对系统电源检测发现过压或欠压;?时钟界常复位。ARM处理器复位后,处理器硬件将进行以下操作:?强制进入管理模式;?强制进入ARM状态;?跳转到绝对地址PC=OxOOOOOOOO处执行;?禁止IRQ中断和FIQ中断。复位后,程序状态寄存器如下:IFTM4M3M2MlMO11010011上电复位后,进入管理模式,执行操作系统程序,一般用做对系统初始化,例如开中断等;然后切换到用户模
9、式,开始执行正常的用户程序。切换到用户模式可使用下列程序:MRSRO,CPSR;读状态寄存器BICR0,R0,#03;把末两位清0MSRCPRS_c,RO;把修改后的值加载给状态寄存器,切换结束……;用户程序2、未定义指令异常;由于ARM使用32位代码,包含的信息量很大,可达2的31方(4G)。ARM指令集不能用尽所有代码。当ARM处理器遇到无法译码的指令时就会发生未定义指令异常。进入中断处理程序。ARM的未定义指令界常有以下两种情况:(1)遇到一•条无法执行的指令,此指令没有定义;(2)执行一条対协处理器的操作指
此文档下载收益归作者所有