摘要:
同事在调试一个外设时发现:a. 系统正常运行的情况下,使用这个设备会触发中断并调用它的中断处理函数。b. 系统休眠之后,使用这个设备可以唤醒系统,但中断处理函数却没有被调用。能够唤醒系统,说明中断一定是触发了。另发现小板上的键盘是可以的,休眠后按键可以调到keyboard的中断处理函数。跟踪这个问题,发现以下几点:1. Linux在系统休眠时会调用dpm_suspend_noirq()-> suspend_device_irqs()。 当系统休眠时,设备驱动需要禁止接收中断,suspend_device_irqs()屏蔽所有正在 使用的中断(置IRQ_DISABLED标志),timer中 阅读全文