本篇 基於固件代碼的開發及移植過程中可能引起的 USB 枚舉失敗的原因進行分 析。
數據採集設備:“
HD-USB
12
”
全
速
/
低速
USB2.0
協議分析儀
一、 如圖 1 所示的 USB 枚舉失敗
1 ) Index[666 - 668] :表示主機向默認地址 發送 GET_DESCRIPTOR 指令包。
2 ) Index[670 - 671] :表示設備默認地址端 點不可用。
3
)由上我們可以推斷出
固件代碼對
GET_DESCRIPTOR
指令包無響應。
(圖
1
)(本數據由
HD-USB12 USB
協議分析儀採集)
二、 如圖 2 所示的 USB 枚舉失敗
1 ) Index[697 - 699] :表示主機向默認地址 發送 SET_ADDRESS 指令包。
2 ) Index[701 - 703] :表示設備完成 SET_ADDRESS 指令後,給主機發送一個 空應答。
3 ) Index[705 - 710] :表示主機向地址 DEC=01 重複發送 SET_DESCRIPTOR 指令包,但設備無任何應 答,因此該事務包設備並沒有接收到。
4
)由上我們可以推斷出固件中設置地址的代碼執行失敗。