usb3.0開發指南:驗證過程除錯
阿新 • • 發佈:2019-01-26
其實地上本沒有路,走的人多了,也便成了路。 –魯迅
一、工作進展
自從前幾天dwc3 day3–platform,轉眼一個星期了。上週六(8號)在驗證環境下實驗,發現一直不能檢測到port connect訊號。這週一(10號)檢查了一天沒發現什麼問題,週二早上終於發現了,原來是phycfg暫存器的suspend位置1了。週三上午set address和get device descriptor的setup階段都成功了。但是裝置模型一直沒有返回資料。真是頭疼,今天又找mentor的人和SoC的朋友一起檢查波形。
二、除錯記錄
2.1 程式碼流程分析
在遇到問題的時候經常需要review一下程式碼,隨著不斷的遇到問題,不知不覺review了好幾次程式碼,每次都看出一些不相容的地方。
這個程式碼執行流程是這樣的:
- 控制器初始化,定義hccr,hcor,ctrl等關鍵資料結構,對映暫存器地址。
- 檢測配置hub狀態,獲取hub描述符。
- 以roothub為根裝置進行usb裝置識別。檢測到hub的connect資訊之後,重新呼叫
usb_new_device
進行裝置識別。
2.2 修改列印介面
更新串列埠列印介面並巨集化,方面後續遮蔽。更改記憶體分配介面。
2.3 利用模擬環境檢視執行情況
三、後續規劃
host識別ramdisk裝置之後,測試讀寫。