zynq usb dwc3中断事件异常

   最近在调试zynq的 usb ,发现一个问题,给pc bulk传输吐log  ,传输速率1MB左右速率发包,发现会传输终止, 调用epsend接口会失败

     原因在于没有收到传输完成事件,收到连续2次not ready  事件,这种情况usb busy标志没有清除,结果send会进入update thansfer 分支指令,但是此时usb hardware已经释放了source index,会挂死掉这里,这样说明硬件已经发送了完成事件,但是事件buffer里面数据不对,没有实时更新

      也就是说 控制器端点事件buffer,采用外部ddr,usb 内部dma频繁搬运几个字节事件数据到ddr,可能ddr 会发生延时响应,中断响应,服务函数中发生拿到event buffer是脏数据

      这种情况需要加入延时,或者指定eventbuffer.到别的内存section

      避免入坑,分享一下。。。

    

 

你可能感兴趣的:(linux-usb,驱动开发)