私が知っている:USBの相互作用(エンドポイント - バッファ - ホストコントローラ)
- USBデバイス(マウス)は、送信データが格納されているイストホストするエンドポイントの割り込みを持っています。
- ホストはこのInterrupt IN Endpointをポーリングし、そのデータをバッファに書き込みます。
このバッファはどこにありますか?私はマザーボードのテクニカルマニュアル(USB ...コントローラ...バッファ)でそれを見つけるのは非常に難しかったが、このレジスタを見つけることができませんでした。
HostControllerは、デバイスからのEndpoint INデータを格納するために独自のバッファを使用していますか、またはHost Conrollerを他のレジスタにマッピングしていますか?
アクションがある場合(マウスの動きやクリックなど)、USBホストコントローラは割り込みを引き起こしますか? このストアド/バッファリングされたデータはどこにありますか?
私はUbuntuので働いていると/proc/interrupts
に見ることで、私は、接続されたUSBデバイスのIRQ番号(マウス)とのEHCI_HCD:USB2
コントローラーを見つけることができます...
たぶん、誰もが理解した上で私を助けることができるこのUSB Enpoint =>ホストコントローラ=>割り込み---メカニズム。
ありがとうございました!
親愛なる@Shaibal。あなたの答えをありがとう。ホストコントローラはURBが完了すると割り込みを発生させますか?汎用割り込みコントローラに登録されていますか?コアに通知するため? pic "バッファポインタ"のソースは何ですか...私はUSB Specs.Youに記載されている転送記述子を見つけることができませんでしたこれのためのソースですか? – fetteotter
はいホストコントローラは、転送完了、ポート変更イベント、ホスト内部エラーの3つの状況で割り込みを発生させます。割り込みは汎用割り込みコントローラに登録されます。インテルの "ehci specification"のドキュメントを参照してください。第3章データ構造図のセクション5とバッファの詳細。 :) – Shaibal