一张图搞定Linux中断处理流程 ·CPU硬件自动完成的 ·GIC驱动 ·Linux内核完成的 ·用户编写的中断服务程序 在Linux内核驱动开发中,中断是不可缺少的重要一环。CPU在和外部设备通信,绝大部分是通过中断完成的。 熟悉了中断的各种机制和运行过程,我们在分析不同平台、不同内核版本下的具体驱动,都可以很快上手,快速理解各个外设驱动是如何处理 中断的,为我们分析各种复杂的驱动和子系统奠定了一个良好的内核基础。 硬件中断号到Linux irq中断号的映射,并创建好irq_desc中断描述符。irq_domain结构,用于硬件中断号和Linux IRQ中断号(virq,虚拟中断号)之间的映射; 中断注册时,先获取设备的中断号,根据中断号找到对应的irq_desc,并将设备的中断处理函数添加到irq_desc中; 设备触发中断信号时,根据硬件中断号得到Linux irq中断号,找到对应的irq_desc,最终调用到设备的中断处理函数; request_irq也是调用request_threaded_irq,只是在传参的时候,线程处理函数thread_fn函数设置成NULL; 由于在硬
2022-11-27 20:02:42 147KB linux 中断 GIC 中断详细处理流程
1