3.9异常 ·中止—一数据中止 当发生数据中止后,根据产生数据中止的指令 类型作出不同的处理: ■数据转移指令(LDR、STR)回写到被修改的基址 寄存器。中止处理程序必须注意这一点; ■交换指令(SWP)中止好像没有被执行过一样 (中止必须发生在WP指令进行读访问时);
当发生数据中止后,根据产生数据中止的指令 类型作出不同的处理: 3.9 异常 • 中止——数据中止 ▪数据转移指令(LDR、STR)回写到被修改的基址 寄存器。中止处理程序必须注意这一点; ▪交换指令(SWP)中止好像没有被执行过一样 (中止必须发生在SWP指令进行读访问时) ;
3.9异常 ·中止一数据中止 当发生数据中止后,根据产生数据中止的指令 类型作出不同的处理: ■块数据转移指令(LDM,STM)完成。当回写被设 置时,基址寄存器被更新。在指示出现中止后, ARM7TDMI内核防止所有寄存器被覆盖。这意味 着ARM7TDMI内核总是会保护被中止的LDM指令 中的R15(总是最后一个被转移的寄存器)
▪块数据转移指令(LDM,STM)完成。 当回写被设 置时,基址寄存器被更新。在指示出现中止后, ARM7TDMI内核防止所有寄存器被覆盖。这意味 着ARM7TDMI内核总是会保护被中止的LDM指令 中的R15(总是最后一个被转移的寄存器)。 3.9 异常 • 中止——数据中止 当发生数据中止后,根据产生数据中止的指令 类型作出不同的处理:
3.9异常 ·中止一数据中止 在修复产生中止的原因后,不管处于哪种处理 器操作状态,处理程序都必须执行下面的返回指令: SUBS PC,R14 abt,#8
在修复产生中止的原因后,不管处于哪种处理 器操作状态,处理程序都必须执行下面的返回指令 : SUBS PC,R14_abt,#8 3.9 异常 • 中止——数据中止
3.9异常 ·软件中断指令 使用软件中断(SW)指令可以进入管理模式, 通常用于请求一个特定的管理函数。S川处理程序 通过执行下面的指令返回: MOVS PC,R14 svc 这个动作恢复了PC和CPSR并返回到WI之后的 指令。W1处理程序读取操作码以提取SW1函数编 号
使用软件中断(SWI)指令可以进入管理模式, 通常用于请求一个特定的管理函数。SWI处理程序 通过执行下面的指令返回: MOVS PC,R14_svc 这个动作恢复了PC和CPSR并返回到SWI之后的 指令。SWI处理程序读取操作码以提取SWI函数编 号。 3.9 异常 • 软件中断指令
3.9异常 ·未定义的指令 当ARM7TDMl处理器遇到一条自己和系统内 任何协处理器都无法处理的指令时,ARM7TDM川 内核执行未定义指令陷阱。软件可使用这一机制通 过摸拟未定义的协处理器指令来扩展ARM指令集。 注:ARM7TDMI处理器完全遵循ARM结构V4T,可 以捕获所有分类未被定义的指令位格式
当ARM7TDMI处理器遇到一条自己和系统内 任何协处理器都无法处理的指令时,ARM7TDMI 内核执行未定义指令陷阱。软件可使用这一机制通 过模拟未定义的协处理器指令来扩展ARM指令集。 注:ARM7TDMI处理器完全遵循ARM结构v4T,可 以捕获所有分类未被定义的指令位格式。 3.9 异常 • 未定义的指令