现在在管脚GPIO2_26上捕获上升沿中断,然后中断内调度一个work_queue。
现在的问题是USB采用PIO中断模式下时,wake_up一个读队列后会引起USB传输的数据丢失问题。
如果USB改为DMA中断后,则不会引起USB传输问题。
不太明白USB的DMA和PIO模式下,调度另外一个不相关的内核线程为什么会有差异?
Yaoming Qin:
PIO模式下,由CPU负责传输,如果有中断发生,就会打断传输,所以容易出现丢包
leo chen:
回复 Yaoming Qin:
尽量使用DMA模式,减轻cpu的负担,要不然就要处理好中断到达的顺序或时间
username:
回复 Yaoming Qin:
但是也有其他GPIO中断也在工作,没发现有什么影响
username:
回复 leo chen:
现在的问题是在DMA模式下,使用g_file_storage.ko不能加载磁盘
windows下设备管理器能看到磁盘驱动器,但是看不到磁盘
但是在PIO模式下,没有这种问题,可以正常传输文件,两种模式下加载module参数是一致的。
TI中文支持网