记住下面的图可以很好的理解中断从产生到得到处理的流程,可以很好的记住相关的寄存器
流程:1。中断源产生:可能是内部外围设备产生的中断也可能是引脚产生的终端
2。此时SRCPND或者SUBSRCPND寄存器相应的位置“1"
3。然后经过模式寄存器INTMOD,看其是IRQ 还是FIQ,如果是FIQ直接进行FIQ请求(注意:在INTMOD中 只有个一个中断时IFQ形式的)
如果是IRQ则执行下面的步骤:
4。经过INTMASK,如果对应的MASK位为1,则该中断不会继续往下进行,但是SCRPND相关的位仍然为1,其不会受到MASK的影响
5。然后经过优先级寄存器PRIORITY,把优先级最高的那个中断传下去。
6。 相应的INTPEND寄存器位置1,申请中断请求。
注意:①还有一个寄存器:INTOFFSET 其中存放0~31中第一个数字,表明是具体哪个中断请求。
②优先级寄存器 具有两级仲裁器,第一级有6个仲裁器,第二级有1个仲裁器。如下图所示;
其中在一个仲裁器中 REQ0优先级始终最高,REQ5的优先级始终最低,其他四个优先级根据模式设置决定是优先级轮流还是优先级固定
本文详细解析了中断从产生到处理的流程,包括中断源、寄存器的作用以及优先级仲裁器的工作原理。重点介绍了SRCPND、SUBSRCPND、INTMOD、INTMASK、PRIORITY和INTPEND等关键寄存器的功能,并通过图示直观展示中断流程。
117

被折叠的 条评论
为什么被折叠?



