1 / 62
文档名称:

ARM体系结构ARM体系结构2章节.ppt

格式:ppt   大小:376KB   页数:62页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ARM体系结构ARM体系结构2章节.ppt

上传人:ouyangxiahe 2019/5/22 文件大小:376 KB

下载得到文件列表

ARM体系结构ARM体系结构2章节.ppt

文档介绍

文档介绍:.,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来的程序。如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常,详见“异常优先级”部分。异常入口/出口汇总异常或入口返回指令之前的状态备注ARMR14_xThumbR14_xBLMOVPC,R14PC+4PC+2此处PC为BL,SWI,为定义的指令取指或预取指中止指令的地址SWIMOVSPC,R14_svcPC+4PC+2未定义的指令MOVSPC,R14_undPC+4PC+2预取指中止SUBSPC,R14_abt,#4PC+4PC+4快中断SUBSPC,R14_fiq,#4PC+4PC+4此处PC为由于FIQ或IRQ占先而没有被执行的指令的地址中断SUBSPC,R14_irq,#4PC+4PC+4数据中止SUBSPC,R14_abt,#8PC+8PC+8此处PC为产生数据中止的装载或保存指令的地址。复位无——复位时保存在R14_svc中的值不可预知。注意:“MOVSPC,R14_svc”是指在管理模式执行MOVSPC,R14指令。“MOVSPC,R14_und”、“SUBSPC,R14_abt,#4”等指令也是类似的。异常异常的入口和出口处理如果异常处理程序已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。SUBLR,LR,#4 ;计算返回地址STMFDSP!,{R0-R3,LR} ;保存使用到的寄存器...LDMFDSP!,{R0-R3,PC}^ ;中断返回中断处理代码的开始部分和退出部分如果异常处理程序已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。中断处理代码的开始部分和退出部分异常异常的入口和出口处理SUBLR,LR,#4 ;计算返回地址STMFDSP!,{R0-R3,LR} ;保存使用到的寄存器...LDMFDSP!,{R0-R3,PC}^ ;中断返回注意:中断返回指令的寄存器列表(其中必须包括PC)后的“^”符号表示这是一条特殊形式的指令。这条指令在从存储器中装载PC的同时(PC是最后恢复的),CPSR也得到恢复。这里使用的堆栈指针SP(R13)是属于异常模式的寄存器,每个异常模式有自己的堆栈指针。这个堆栈指针应必须在系统启动时初始化。异常进入异常在异常发生后,ARM内核会作以下工作:,当异常入口来自:ARM状态,那么ARM将当前指令地址加4或加8复制(取决于异常的类型)到LR中;为Thumb状态,那么ARM将当前指令地址加4或加8(取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。异常进入异常在异常发生后,ARM内核会作以下工作:;;。ARM内核在中断异常时置位中断禁止标志,这样可以防止不受控制的异常嵌套。注:异常总是在ARM状态中进行处理。当处理器处于Thumb状态时发生了异常,在异常向量地址装入PC时,会自动切换到ARM状态。异常进入异常当异常结束时,异常处理程序必须:,偏移量根据异常的类型而有所不同;;。注:恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。异常退出异常