中断控制寄存器

时间:2021-10-25 19:36:02

用S3C2410的中断方式来控制I/O端口或部件操作时,除了要对I/O端口或者部件的相应寄存器进行初始化设置外,还需对中断控制器的5个控制寄存器进行初始化设置。这5个寄存器是:中断模式寄存器、屏蔽寄存器、优先级寄存器、中断未决寄存器。源未决寄存器、中断模式寄存器、屏蔽寄存器、优先级寄存器、中断未决寄存器。下面分别是5个寄存器的合适进行介绍。

1、源未决寄存器

SRCPND寄存器由32位构成,每一位与一个中断请求信号相关联。当某个中断源请求中断服务时,SRCPND寄存器的相应位被置为1,即首先在源未决寄存器中登记。因此该寄存器记录了哪个中断源的请求在等待处理。注意SRCPND寄存器的每一位由中断源自动设置,而不管中断屏蔽寄存器中对应的位是否被屏蔽,此外,SRCPND寄存器也不受中断控制器的优先级逻辑影响。

2、中断模式寄存器

S3C2410的中断模式有两种:FIQ模式和IRQ模式。32位的INTMOD寄存器中的每一位都与一个中断源相关联,确定对应的中断源请求采用哪种模式。如果某位被设置成1,则相应的中断按FIQ模式处理。若设置成0,则按IRQ模式处理,该模式又称为普通中断模式。

3、中断屏蔽寄存器

INTMSK寄存器也是由32为组成,每一位与一个中断源相对应。若某位设置为1,则中断控制器不会处理该位所对应的中断源提出的请求。如果设置为0,则对应的中断源提出的中断请求可以被处理。即使某屏蔽位设置为1,其对应的中断源产生中断请求时,相应的源未决位设置成1.

4、优先级寄存器

PRIORTY寄存器是IRQ中断模式下的中断优先级控制寄存器,每个中断源在寄存器中有3位对应,分别带别ARB_SEL的32位和ARB_MODE的一位。该寄存器的地址是0x4a00000c,复位初始状态为0x0000007f.

5、中断未决寄存器

INTPND寄存器是32位寄存器,寄存器中的每一位对应一个中断源。只有未被屏蔽且具有最高优先级、在源未决寄存器中等待出路的中断请求可以把去对应的中断未决位置1.因此INTPND寄存器只有一位可以设置为1,同时中断控制器产生IRQ信号给ARM920T核。在IRQ的中断服务例程里设计者可以读取该寄存器,从而获知哪个中断源被处理。

出自文德数据:www.idcvendor.com