Linux 中断控制器(五):中断号映射

中断号分为硬件中断号(HW ID)软件中断号(IRQ number)

Linux 中断控制器(五):中断号映射_第1张图片
这里有两个中断控制器,处理完毕进入 CPU。外设和中断控制器连接在一起,外设给中断控制器的是硬件中断号,如果中断控制器有级联,那么硬件中断号在不同的中断控制器中可能会重复。但是到了 CPU 以后,我们需要对不同中断控制器给过来的硬件中断号进行翻译,翻译成在软件中唯一的软件中断号,叫 irq number。

注意,我们在设备树中配置的是硬件中断号,在软件中申请中断 request_irq 使用的是软件中断号,所以申请之前要先从设备树获取硬件中断号,然后使用 irq_of_parse_and_map 进行翻译再使用,这个后面会详细讲,并给出示例。

1、硬件中断号与软件中断号

在 Linux kernel 中我们使用下面两个 ID 来标识一个来自外设的中断:

1、IRQ number。CPU需要为每个外设中断编号,我们称之 IRQ Number。这个 IRQ number 是一个虚拟的 interrupt ID,和硬件无关,仅仅是被 CPU 用来标识个外设中断。

2、HW interrupt ID。对于 interrupt controller 而言,它收集了多个外设的 interrupt request line 井向上传递,因此,interrupt contro

你可能感兴趣的:(Linux,驱动与调试大全,linux)