我用U盤導(dǎo)出數(shù)據(jù),現(xiàn)象是第一次導(dǎo)出成功,不拔出U盤的情況下,直接導(dǎo)出第二次失敗,之后的每一次都失敗。拔出U盤后重新插入,仍是第一次正常,之后每一次失敗。
查到是drv_usbh.c文件中的drv_pipe_xfer()函數(shù),NAK死循環(huán)。
1、增加了NAK后重試的代碼
論壇中其他方法效果不明顯,還是會NAK。
if (++retry_times >= 100)
{
return -2;
}
continue;
2、增加延時
打開RT_DEBUG_USB后發(fā)現(xiàn),U盤讀寫正常了,但是枚舉有時不正確,概率大概是插入5次,會有1次枚舉不成功。
所以在rt_usb_hcd_pipe_xfer()函數(shù)內(nèi)打印處增加延時,關(guān)閉RT_DEBUG_USB后,讀寫、枚舉全部正常。
RT_DEBUG_LOG(RT_DEBUG_USB,("pipe transform remain size,: %dn", remain_size));
if (!RT_DEBUG_USB)
{
rt_thread_mdelay(5);
}
-
USB接口
+關(guān)注
關(guān)注
9文章
707瀏覽量
56976 -
DRV
+關(guān)注
關(guān)注
0文章
18瀏覽量
20821 -
DEBUG
+關(guān)注
關(guān)注
3文章
95瀏覽量
20543 -
RT-Thread
+關(guān)注
關(guān)注
32文章
1406瀏覽量
41922
發(fā)布評論請先 登錄
USB4和TBT4平臺的ccg6sf/df配置設(shè)置有何不同?
CYUSB3014在host開機后不識別是怎么回事?
如何區(qū)分usb-typec是插入電腦還是插入其他電源?
是否可以將PTN3222配置為Host-USB2到eUSB2主機?
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)板適配之USB_OTG
飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)板適配之USB_OTG
不停的malloc程序會異常嗎
樂鑫USB方案設(shè)備互聯(lián)傳輸,豐富的外設(shè)支持應(yīng)用

全志T113-S3開發(fā)板—USB兩步燒錄固件

評論