偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.
全部博文(1750)
分类: LINUX
2010-11-24 17:42:11
中断处理可以在驱动初始化时或者在设备第一次打开时安装. 但不建议在模块的初始化函数中安装 调用 request_irq 的正确位置是当设备第一次打开时, 在硬件被指示来产生中断前. 调用 free_irq 的位置是设备最后一次被关闭时, 在硬件被告知不要再中断处理器之后. 这个技术的缺点是你需要保持一个每设备的打开计数, 以便于你知道什么时候中断可以被禁止. |
irqreturn_t short_interrupt(int irq, void *dev_id)中断函数有一些处理上的限制。
{
return IRQ_HANDLED;
}
如果 disable_irq 被连续调用 2 次, 需要 2 个 enable_irq 调用使能
若调用 disable_irq 的线程持有中断处理需要的任何资源(例如自旋锁), 系统可能死锁. disable_irq_nosync 与 disable_irq 不同, 它立刻返回. |
|