2440外部中断

来源:互联网 发布:网络最新赌博游戏平台 编辑:程序博客网 时间:2024/06/06 21:43
一、外部中断主要寄存器
EXTINTn
Register           Address         R/W       Description        Reset Value
EXTINT0          0x56000088    R/W        External interrupt   control register 0 0x000000
EXTINT1          0x5600008c   R/W       External interrupt   control register 1 0x000000
EXTINT2          0x56000090   R/W       External interrupt   control register 2 0x000000
       EXINTn寄存器用于配置外部中断请求信号方式是电平触发还是边沿触发。EXINT0的[0:2]用于设置EINT0触发方式:
000 = 低电平
001 = 高电平
01x = 上升沿
10x = 下降沿
11x = 上升下降沿均触发
 
l         SRCPND(0X4A000000)
SRCPND寄存器中32位每一位都用于表示对应中断源是否发生中断。可以通过向SRCPND寄存器对应写入”1”清除相应中断标志。
 
l         INTPND(0X4A000010)
经过中断优先级仲裁后选出优先级最高的中断,显示在INTPND寄存器相应位。然后CPU进入中断处理。该寄存器与SRCPND相似,向应写入”1”清除相应中断标志。
 
l         INTMSK(0X4A000008)
当INTMSK寄存器相应位被置”1”,CPU不会进入中断服务请求。即使是SRCPND相应位为”1”。
 
l         INTMOD(0X4A000004)

INTMOD寄存器用于配置中断发式,当某位设置为”1”,改为中断被设置未FIQ;否则,中断设置为IRQ。


二、中断过程
外部中断:
EINT0-EINT3发生后SRCPND相应位置1,如果没有被INTMSK屏蔽,那么等待进一步处理。EINT4-EINT23发生后EINTPEND相应位置1,如果没有被EINTMASK屏蔽,那么SRCPND相应位EINT4-7 或EINT8-23置1,如果没有被INTMSK屏蔽,等待进一步处理,几个EINTPEND对应同一个SRCPND,对应表如下:
SRCPND       EINTPEND
EINT0           EINT0
EINT1           EINT1
EINT2           EINT2
EINT3           EINT3
EINT4-7      EINT4-EINT4
EINT8-23     EINT8-EINT23

中断都等待进一步处理了。接下来从SRCPND往下看,看INTMSK。如果中断被屏蔽了,就不用说了(注意:快中断也能被屏蔽)。如果没有被屏蔽,那么会进一步到INTMOD。如果是快中断,那么直接出来,进入FIQ(即CPU进入快中断模式处理)。如果是普通中断,那么SRCPND可以有多为置1(FIQ只能有一个),这时就会经过PRIORITY选出一个优先级高的,然后把根据选出的中断把INTPND相应位置1(注意:只能选出一个),进入IRQ,让CPU处理。


三、 中断的开启

如果是外部中断,对于EINT8-23需要设置EINTMASK和INTMSK。对于EINT0-EINT3只需设置INTMSK。


四、中断的清除
如果是外部中断,对于EINT8-23需要清除EINTPEND和SRCPND(同样注意顺序)。对于EINT0-EINT3只需清除SRCPND。
原创粉丝点击