前言
中断在驱动中是非常常用的,无论是外部的GPIO中断,还是SPI,I2C等发送或接收中断,都是必不可少的。所以今天来看看Linux中的中断处理。
中断分类
上面我们根据中断来源,屏蔽方式和中断入口对中断进行了简单的分类。
中断控制器
PIC: 可编程中断控制器
GIC: Generic Interrupt Controller, 通用中断控制器。(常用)
GIC是目前最常见的一种中断控制器,它在多核CPU中特别常见。它对中断做了细分:
SGI: Software Generated Interrupt, 软件产生的中断,可以用于多核的核间通信。一个CPU可以通过写GIC的寄存器给另外一个CPU产生中断。(中断号0~15)
PPI: Private Peripheral Interrupt, 某个CPU私有外设的中断,这类外设的中断只能发给绑定的那个CPU。(中断号16~31)
SPI: Shared Peripheral Interrupt, 共享外设的中断,这类中断可以路由到任何一个CPU。(中断号32~1019)
这些更详细的内容可以到内