我已经在内核3.6.11中实现了以下代码(在ARM架构中进行了修饰):
wait_queue_head_t i2c_waitQ;
init_waitqueue_head( &i2c_waitQ );
...
wait_event_interruptible_timeout( i2c_waitQ, !(fpga_register & 0x10000000),
1000 )
在ISR中,我删除了相关的唤醒功能
//wake_up_interruptible( &i2c_waitQ );
到处我都读到了关于这个功能的内容:
每次等待等待wq被唤醒时都会检查条件
但我没有唤醒等待时间,并且条件(FPGA寄存器)将轮询循环。
可能是什么原因?