ARM32,官方正式叫法是ARMv7以前,的中断是有7个向量中断,后续ARM64,即ARMV8以后架构的中断已经不再是原来的7个,然后外面再挂一个GIC,之前单核上用的应该都是GICV1,后面针对多核出了GICV2。GICV1就比较简单了,不赘述,下面着重讲讲GICV2。
        现在一般的ARM SOC,特别是多核ARM,会支持非常丰富的外部中断及多核之前的一些中断。这里的中断要和ARM本身的中断严格区分开来。因为这里提到的中断,和ARM本身的7个向量中断是不一样的。ARM本身的中断是CPU上的,这些外部的中断都是通过GIC处理之后,再交给CPU的,而且是交给CPU的IRQ或FIQ。
        下面来张图,就可以一目了然。

ARM中断及中断控制器GIC-LMLPHP

SGI和PPI占了GIC上对应每个CPU的前32个中断中的前后16个,后面的就是SPI了


10-22 23:46