Rah*_*hul 2 kernel interrupt linux-device-driver linux-kernel
根据内核文档,request_threaded_irq用于将其分为两部分,irq_handler检查中断是否源自设备.如果是,则需要禁用设备上的中断并返回IRQ_WAKE_THREAD,这将唤醒处理程序线程并运行@thread_fn.
但我发现了一些代码寄存器中断,request_threaded_irq在传递时使用NULL,irq_handler并且它们保持完整的功能thread_fn.
所以我怀疑是为什么我们request_threaded_irq()在这种情况下使用,而我们可以轻松使用request_irq,其行为与上述场景相同.
该文件说:
如果为NULL且thread_fn!= NULL,则安装默认的主处理程序
默认的主处理程序是未记录的,但其源代码应该是自解释的:
static irqreturn_t irq_default_primary_handler(int irq, void *dev_id)
{
return IRQ_WAKE_THREAD;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
535 次 |
| 最近记录: |