arm异常响应和异常返回机制是什么样子的?

电子说

1.3w人已加入

描述

arm异常响应和异常返回机制是什么样子的? 

ARM是一种RISC指令集架构,广泛用于无线电视、移动电话、嵌入式系统等领域。ARM中异常响应和异常返回机制是实现ARM处理器在面对异常情况时候的重要机制。ARM处于操作系统和硬件之间,因此异常处理机制在有效性、安全性、可靠性方面必须经过充分测试和验证。

ARM异常指令是程序中不受控制的分支或其他例外情况,如硬件故障、访问非法地址、非法指令、软件中断等。虽然大多处理器都有异常响应和处理机制,但ARM采用的异常响应机制是独特的。其异常响应分为两级:内核级和用户级。内核级的异常响应是用于处理特权指令或机器模式下的异常情况;而用户级的异常响应是用于处理用户模式下发生的异常。

ARM异常响应机制使用了异常向量表(EVT)来处理异常。EVT是一个包含有关所有可能发生的异常类型和相应处理程序的表。ARM架构中定义了14个预定义的异常类型,其中有三个异常优先级最高(Reset、Undefined、SWI)。当程序遇到异常时,处理器将转移到异常处理程序所在的地址。针对不同的异常类型,特定的处理程序被执行,从而决定处理器的响应。

在异常处理期间,CPU将从常规指令流中退出,将控制传递给异常处理程序。异常处理程序将执行必要的操作,如保留现场,诊断异常发生的原因,执行适当的修复操作等。处理程序在完成任务后,必须将控制返回到正常执行流的适当位置。为完成此任务,ARM使用了异常返回指令。

在ARM中,异常返回指令的操作码和其他指令一样,不同的是操作数使用了特殊的编码。异常返回指令指定了何处返回到正常的执行流。在执行异常处理程序时,异常状态寄存器(State Register)会保存异常处理前的状态。异常之后,处理程序需要恢复正常的执行流并恢复异常处理之前的状态。恢复的方式是使用异常返回指令。

当异常返回指令被执行时,控制传递到指定的地址。异常返回指令不同于其他指令,它根据异常状态寄存器的值将处理器的状态从异常处理模式转换为当前模式。异常返回指令将状态寄存器的值弹出堆栈,并恢复公共寄存器,此时处理器将重新转换为正常执行流。异常返回指令的操作数指定了将执行的指令所在的位置。指定位置之后的指令将从异常处理程序执行缺失地方继续执行。

总而言之,ARM处理器的异常响应和异常返回机制是系统级别的机制,可以确保系统的可靠性和稳定性。ARM采用的异常向量表、状态寄存器和异常返回指令等功能模块,能够快速、高效地判断异常类型,并恢复异常处理前的状态,以保证程序的继续执行。同时,异常响应和异常返回机制在保持系统稳定性的同时,还可以提高处理器的工作效率,减少系统闪退等问题的发生。
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分