下载此文档

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


文档分类:IT计算机 | 页数:约62页 举报非法文档有奖
1/62
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/62 下载此文档
文档列表 文档介绍
.,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,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位自动恢复为异常发生前的值。异常退出异常

ARM体系结构ARM体系结构2章节 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数62
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ouyangxiahe
  • 文件大小376 KB
  • 时间2019-05-22