内外部中断控制除了仿真器中斷控制和复位中断控制不可屏蔽,其余中断控制均可屏蔽除了不可屏蔽中断控制和引导加载中断控制EP0I或者LP4I外,所有中断控制在系统复位時都是默认被屏蔽的当1个中断控制正在执行服务期间,ADSP会在每个周期都对中断控制锁存寄存器ILAT中的相应位清0以禁止该中断控制服务程序重复响应。
涉及到中断控制的主要有以下这几个寄存器:ILATIMASK,PMASK此3个寄存器位定义一致,以及SQCTL下的GIE位控制全局中断控制和INTCTL控制IRQ3-0的触发方式、TIME1-0的启动。
ILAT: 中断控制锁存寄存器是1个64位的只读寄存器,通过两个32位的寄存器ILATL和ILATH对其进行访问每位对应一种中断控制类型,当中断控制产生时该寄存器中相应的位置1,中断控制位按照中断控制优先级排列位0对应最低中断控制类型。PS:对ILATH、ILATL寄存器的置1操作只能通过对ILATSTH、ILATSTL进行写入ILATST的值跟ILAT的值进行按位或操作,结果重新装入ILAT因此对ILATST写入1时可将ILAT中相应位置1,对寄存器ILATST写入0则不能改变ILAT中的值;其次对ILAT的清0 操作通过ILATCLH、ILATCLL寄存器进行写入ILATCL的值跟寄存器ILAT中的值按为与操作,得到结果重新载入ILAT中因此对ILATCL写入1时,不能改变ILAT的值写入0,可将ILAT清0可鼡ILATST、 ILATCL软件模拟中断控制事件。
PMASK:中断控制指针屏蔽寄存器锁存正在执行的中断控制,如果允许中断控制嵌套只有在高于目前PMASK位的中断控制才可以响应。服务程序执行完毕后系统执行RTI或RETI指令清0,利用RDS指令可强制清0