一、外部中断主要寄存器
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)
外部中断:
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
如果是外部中断,对于EINT8-23需要清除EINTPEND和SRCPND(同样注意顺序)。对于EINT0-EINT3只需清除SRCPND。
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。