马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
计算机通常用异常来处理在执行程序时发生的意外事件,如中断、存储器故障等,它需要停止程序的执行流程。在正常的程序执行过程中,每执行一条ARM指令,程序计数器PC的值加4;每执行一条Thumb指令,程序计数器的PC值加2,整个过程按顺序执行。在程序执行过程中通常通过控制跳转类指令,程序可跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。而当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行异常处理,异常中断处理完成后,程序返回。 异常中断事件改变了程序正常执行的顺序,是程序执行的非正常状态。在进入异常中断处理程序时,要保存被中断的程序的执行现场。在从异常中断处理程序退出时,要恢复被中断的程序的执行现场。每种异常中断都具有各自的备份寄存器组。对异常中断的了解是处理器应用必须掌握的基本知识。 在ARM体系结构中,异常中断用来处理软件中断、未定义指令陷阱及系统复位功能和外部事件,这些“不正常”事件都被规划“异常”,因为在处理器的控制机制中,它们都使用同样的流程进行异常处理。 ARM异常按引起异常事件的不同可分为3类: (1)
指令异常引起的直接异常 软件中断、未定义指令和预取指中止(因为取指过程中的存储器故障导致的无效指令)属于这一类。 (2)
指令执行引起的间接异常 数据中止(在读取和存储数据时的存储器故障)属于这一类。 (3)
外部产生的与指令流无关的异常 复位、IRQ和FIQ属于这一类。 下表给出了ARM体系结构支持的异常中断的类型、异常中断下的工作模式、异常中断处理程序入口向量地址和每种异常中断的含义,每种模式下可访问的存储器可参考图1
ARM体系中的异常中断
图1
凌阳教育,专注嵌入式人才培养13年,为大量企业输送优秀的嵌入式工程师。每个凌阳学子都在企业实现着自己的价值。想了解凌阳教育或者免费嵌入式学习资料下载,请点击www.sunplusedu.com访问凌阳教育官网。 |