1. 程式人生 > >usb3.0開發指南:驗證過程除錯

usb3.0開發指南:驗證過程除錯

其實地上本沒有路,走的人多了,也便成了路。 –魯迅

一、工作進展

自從前幾天dwc3 day3–platform,轉眼一個星期了。上週六(8號)在驗證環境下實驗,發現一直不能檢測到port connect訊號。這週一(10號)檢查了一天沒發現什麼問題,週二早上終於發現了,原來是phycfg暫存器的suspend位置1了。週三上午set address和get device descriptor的setup階段都成功了。但是裝置模型一直沒有返回資料。真是頭疼,今天又找mentor的人和SoC的朋友一起檢查波形。

二、除錯記錄

2.1 程式碼流程分析

在遇到問題的時候經常需要review一下程式碼,隨著不斷的遇到問題,不知不覺review了好幾次程式碼,每次都看出一些不相容的地方。

這個程式碼執行流程是這樣的:

  1. 控制器初始化,定義hccr,hcor,ctrl等關鍵資料結構,對映暫存器地址。
  2. 檢測配置hub狀態,獲取hub描述符。
  3. 以roothub為根裝置進行usb裝置識別。檢測到hub的connect資訊之後,重新呼叫usb_new_device進行裝置識別。

2.2 修改列印介面

更新串列埠列印介面並巨集化,方面後續遮蔽。更改記憶體分配介面。

2.3 利用模擬環境檢視執行情況

三、後續規劃

host識別ramdisk裝置之後,測試讀寫。