硬件中断处理是实时系统设计中最重要、最关键的问题。文中综合软硬件,从工程应用的角度对此问题加以讨论。文中所述内容针对的软件平台是VxWorks实时操作系统,硬件平台选用广泛使用的X86架构的嵌入式计算机,全文按照CPU、主板、操作系统自下而上的顺序展开。
1 Pentium CPU的中断类型
有两类事件可引起Pentium挂起当前的指令流,即中断和异常。中断是由外部事件引发的,在程序执行的任何时刻都可能出现;异常也称异常中断,是由内部事件引发的。中断和异常各有两类触发源:
(1)中断。
可屏蔽中断:CPU的INTR引脚收到有效信号,如果Pentium标志寄存器IF位为1,则允许中断,否则信号在CPU内被屏蔽。
非屏蔽中断:CPU的NMI引脚收到有效信号而引发的中断,这类中断不能被阻止。
(2)异常。
执行异常:CPU试图执行一条指令的过程中出现错误、故障等不正常条件而引发的异常中断。
执行软件中断指令:Pentium指令系统中包括一些如INTO,INT n这类软件中断指令,执行时产生异常中断。
详细分类的话,Pentium可以识别256种中断和异常。每种中断给予一个编号,即0~255,称为中断向量号(interru