linux中断子系统

Posted focus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中断子系统相关的知识,希望对你有一定的参考价值。

一、概述

  1. 目的

kernel管理硬件设备的方式:轮询、中断。中断效率高且反应快于轮询,因为它利用了硬件本身执行指令前会做的‘中断电信号周期轮询’。

  1. 分类

中断分为同步(synchronous)和异步(asynchronous)。

同步也称为异常,由CPU指令错误产生,分为故障、陷阱和中止;

异步也称为中断,由外部电信号产生,对于x86分为可屏蔽(INTR)和不可屏蔽中断(NMI);对于ARM分为IRQ和FIQ;

对于x86 CPU,有两个中断输入pin:INTR和NMI。当CPU接到INTR中断后,会通过INTA pin应答,表示收到中断

  1. 中断控制器:PIC、APIC及GIC

PIC   – Programmable Interrupt Controller     可编程中断控制器(x86 UP)

APIC  – Advanced Programmable Interrupt Controller    高级可编程中断控制器(x86MP)

GIC – Generic Interrupt Controller         ARM公司设计的通用中断控制器(支持MP)

通过cat /proc/interrupts查看。

UP:Uni-processor(单核);MP:Multiple-processor(多核)。

  1. 其他

二、初始化

三、处理过程

四、API

五、问题

系统中有8个CPU,有2000个外设中断要处理,这时候你如何设计系统中的interrupt controller?(采用GIC和采用APIC)

六、其他

以上是关于linux中断子系统的主要内容,如果未能解决你的问题,请参考以下文章

linux中断子系统

linux kernel的中断子系统之:IRQ number和中断描述符转

Linux kernel中断子系统之:驱动申请中断API

Linux kernel的中断子系统

原创Linux中断子系统-中断控制器及驱动分析

原创Linux中断子系统-中断控制器及驱动分析