2.4. 中断和异常,陷阱的区别和联系

对于中断,异常和陷阱的各种关系,总结如下:

表 2.1. 中断,异常和陷阱的区别和联系

  对CPU来说是 和当前CPU所执行的指令的关系 CPU接下来的事情 程序员和用户的态度
中断 被动的 异步的 没关系 跳转到对应的ISR 希望有对应的中断,以使得CPU可以响应对应的中断,执行对应的ISR
异常 被动的 同步的 有关系,因为就是当前指令执行出问题,才有的异常 跳转到对应的异常处理 不希望出现异常,如果出现了,那往往是指令执行出现某些错误了
陷阱 主动的 同步的 有关系,就是执行当前软中断指令,才进入的软中断 执行对应的软中断处理函数 对于想要实现调试功能的程序员,有需要此陷阱的必要,其他人不用关心此点

下面,用图表总结了,中断,陷阱和异常的区别:

图 2.1. 中断,陷阱和异常的区别

中断,陷阱和异常的区别

[注意] 注意

无论是中断,还是异常和陷阱,对应的处理函数,一般都可以称其为中断服务程序ISR,都只是一个函数

具体函数里面要做什么事情,是由你写程序的人决定的

比如中断中处理对应的事情,异常中自己决定如何响应出现的异常,陷阱中决定做什么事情。