我知道什麼:USB交互( - 緩衝 - 端點HostController)
- USB設備(鼠標),有一箇中斷IN端點,其中輸出數據到主機IST存儲。
- 主機輪詢此中斷IN端點並將數據寫入緩衝區。
我在哪裏可以找到這個緩衝區?我非常努力地在我的主板的技術手冊(USB ... Controller ... Buffer)中找到它,但是我找不到這個寄存器。
那麼HostController使用自己的緩衝區來存儲來自設備的Endpoint IN數據,還是Host Conroller將它映射到其他寄存器?
如果有動作(例如鼠標移動或點擊),USB主控制器是否會引起中斷? 我在哪裏可以找到這個存儲/緩衝的數據?
我與Ubuntu合作,並尋找到/proc/interrupts
我可以找到EHCI_HCD:USB2
控制器,連接的USB設備的IRQ號(鼠標)...
也許任何人都可以幫我瞭解這個USB Enpoint => HostController =>中斷---機制。
非常感謝!
親愛的@Shaibal。謝謝您的回答。所以當URB完成時,主機控制器會引起中斷?註冊到通用中斷控制器?通知核心?什麼是pic「緩衝區指針」的來源......我找不到USB規範中描述的傳輸描述符。您有這方面的來源嗎?此致 – fetteotter
是主控制器在三種情況下導致中斷 - 傳輸完成,端口更改事件,主機內部錯誤。該中斷將被註冊到通用中斷控制器。請參閱intel的「ehci規範」文檔。有關緩衝區的數據結構圖和細節,請參見第3章第5節。 :) – Shaibal