现在达到了最后一步,给中断源安装上设备层级的中断处理函数,这个是每个具体设备驱动需要做的核心工作,每个device probe 时,驱动程序会初始本设备的寄存器和使用request_threaded_irq@manage.c 注册设备自己相关的中断处理函数。
设备中断处理函数的运行位置如下图的红色箭头所指的地方,我们就从宏观上的理解到了设备级中断处理函数的运行位置:dev specific handler指示的位置。

深入理解Linux设备中断处理
本文介绍了Linux设备驱动中如何注册和处理中断,特别是通过request_threaded_irq在manage.c中设置设备特定的中断处理函数。设备中断处理函数分为handler和thread_fn,前者在hard_irq上下文中运行,后者由内核线程在thread堆栈上执行。以MTK网卡驱动为例,展示了中断处理的CallStack,强调了设备级handler mtk_handle_irq_rx的运行位置。
现在达到了最后一步,给中断源安装上设备层级的中断处理函数,这个是每个具体设备驱动需要做的核心工作,每个device probe 时,驱动程序会初始本设备的寄存器和使用request_threaded_irq@manage.c 注册设备自己相关的中断处理函数。
设备中断处理函数的运行位置如下图的红色箭头所指的地方,我们就从宏观上的理解到了设备级中断处理函数的运行位置:dev specific handler指示的位置。

887
782
996
1745
486
2411

被折叠的 条评论
为什么被折叠?