如何设置中断屏蔽字

  • Post author:
  • Post category:其他




对应每一个中断请求触发器就有一个屏蔽触发器,将所有的屏蔽触发器组合在一起,就成了一个屏蔽寄存器,屏蔽寄存器中的内容称为屏蔽字。在终端服务程序中设置合适的屏蔽字,能起到对优先级别不同的中断源的屏蔽作用。屏蔽技术是可以改变优先等级的。优先级包含响应优先级和处理优先级。响应优先级是CPU响应各中断源请求的优先次序,这种次序一般是硬件线路已经设置好的,不便改动。处理优先级是CPU实际对各中断源请求的处理优先次序。如果不采用屏蔽技术,响应的优先次序就是处理的优先次序。



那么,应该如何设置合适的屏蔽字呢?下面用两个例题来说明如何进行屏蔽字的设置。



例一、某机有四个中断源A、B、C、D,按照中断响应的优先次序由高到低排序为A→B→C→D,现要求中断次序改为A→D→C→B。写出新的屏蔽字。





中断源


原屏蔽字



新屏蔽字


A


1


1


1


1



A


1


1


1


1

优先级最高,全为1


B


0


1


1


1



B


0


1


0


0

A、D、C的优先级比B大,所以第1、3、4位是0,其余为1


C


0


0


1


1



C


0


1


1


0

A、D的优先级比C大,所以第1、4位是0,其余为1


D


0


0


0


1



D


0


1


1


1

A的优先级比D大,所以第1位是0,其余为1


A→B→C→D



A→D→C→B




例二、


某机有五个中断源

L0



L1



L2



L3



L4

,按中断响应的优先次序由高向低排序为

L0





®




L1




®




L2




®




L3




®




L4




,根据下示格式,现要求中断处理次序改为

L1





®




L4




®




L2




®




L0




®




L3




,根据下面的格式,写出各中断源的屏蔽字。







按照例一的方法,不难得出下表。



各中断源屏蔽状态见下表:



中断源



屏蔽字









0



1



2



3



4



I0



1



0



0



1



0



I1



1



1



1



1



1



I2



1



0



1



1



0



I3



0



0



0



1



0



I4



1



0



1



1



1



表中:设屏蔽位=1,表示屏蔽;屏蔽位=0,表示中断开放。



版权声明:本文为Blue_Starry_sky原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。