S3C 2440 中断控制器的学习

记住下面的图可以很好的理解中断从产生到得到处理的流程,可以很好的记住相关的寄存器
 
S3C 2440 中断控制器的学习_第1张图片
流程: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个仲裁器。如下图所示;
        
S3C 2440 中断控制器的学习_第2张图片
          
其中在一个仲裁器中 REQ0优先级始终最高,REQ5的优先级始终最低,其他四个优先级根据模式设置决定是优先级轮流还是优先级固定
 

你可能感兴趣的:(c,终端)