目录
一、中断管理
1.1概述
中断最初被用来替换I/O操作的轮询处理方式,来提高I/O处理效率。随后中断包含了自陷(内部中断或软件中断)功能。后来定义为导致程序正常执行流程发生改变的时间。广义的中断通常被分为中断、自陷和异常等类别。
中断是CPU外部的原因而改变程序执行流程的过程,属于异步事件(事件是随机的),又被称为硬件中断。
自陷是处理器所拥有的软件指令、可预期地使处理器正在执行的程序的执行流程发生变化,来执行特定的程序,自陷是显式的事件。
异常是CPU自动产生的自陷,以处理异常事件。如被0除、执行非法指令和内存保护故障等。异常没有对应的处理器指令,当异常发生,CPU无条件挂起当前运行的程序,执行特定的处理程序。 自陷和异常为同步事件。它们是CPU内部的电信号产生的中断,CPU是主动的,可控的。
中断的发生是异步的,程序的正常执行流程随时可能被中断服务程序打断。如果程序在执行重要的处理(如在中断服务程序共享的临界区内时,不能让中断立即响应,否则会造成临界区的破坏),ISR的插入可能改变寄存器数据,导致程序运行发生错误。
CPU每条指令运行完成后,都会有一个中断周期来检测是否有中断发生,一旦有中断发生就去执行ISR。
可屏蔽中断:能够屏蔽掉的中断,外部设备的中断请求信号一般先通过CPU外部的中断控制器,再与CPU相应的引脚相连,可以通过软件进行控制以禁止或允许中断。
不可屏蔽中断:任何时候都是不可以屏蔽的,如掉电中断。
硬件中断:由CPU外部设备产生的中断,是一种异步事件,发生时间不确定。
软件中断:又叫同步中断或者自陷,通过处理器软件指令来实现,产生时机是已知的。软件中断可以以同步方式执行。软件中断是一种重要机制,是软件调试的一个重要手段,使指令单步执行。
边缘触发中断:中断线从低到高或从高到低时,中断信号被发送出去,由于事件发生时间短可能出现中断控制器丢失中断情况。
电平触发中断:硬件中断线的电平发生变化时产生中断信号,并且中断信号的有效性将持续保持下去,直到中断信号被清除,