2017-04-12 6 views
0

割り込みデバイス(マウス/ KBD /タッチスクリーン)を使用してUSBデバイスを使用する場合、ホストコントローラはこのエンドポイントをポーリングすることによってエンドポイントからデータを取得しています。 Linuxでは、このパイプはURB(USB Request Block)と呼ばれ、このURBはホストコントローラによって開始されます。 データがホストコントローラによって収集され、パスが失われました。 私はデータがRAMにバッファリングされていると思います。おそらくDmaコントローラ(わかりません)が...ホストコントローラが割り込みコントローラに割り込みを登録して、USBデバイスから割り込みを処理できるようにします。 どのドライバが割り込みをPICに登録しますか?ホストコントローラによってポーリングされたときのデータの保存場所はどこですか?USBホストコントローラによる割り込み

誰もがこれに慣れていますか? USB HIDデバイス

- *************のUbuntu 14.04.4 TLS Egalax USBタッチスクリーンと JETSON TegraはK1:


****私のスペック

dmesg:入力:eGalax Inc. eGalaxTouch EXC3000-1470-46.00.00 as /devices/platform/tegra-ehci.2/usb2/2-1/2-1.2/2-1.2.3/2-1.2.3: USB HID v2.10ポインタ[eGalax Inc. eGalaxTouch EXC3000-1470-46.00.00] on usb-tegra-ehci.2-入力/入力8 [83.700372] hid-multitouch 0003:0EEF:C000.0007:入力:USB HID v2.10ポインタ1.2.3/input0 lsusb -v: バス002デバイス012:ID 0eef:c000 D-WAV Scientific Co.、Lt D bInterfaceClass 3ヒューマンインタフェースデバイス bInterfaceSubClass 1ブート・インタフェースサブクラス bInterfaceProtocol 2マウス エンドポイントディスクリプタ: bmAttributes 3 転送タイプ割り込み 同期タイプなし 使用タイプデータ wMaxPacketSize IN 容bLength 7 bDescriptorType 5 bEndpointAddress 0x81とEP 1 0x0040 1x 64バイト bInterval

答えて

0

どのドライバが割り込みをPICに登録しますか?

EHCIドライバfor tegraプラットフォームが割り込みを登録します。 "drivers/usb/host"のファイルehci-tegra.cを参照するだけです。デバッグプリントを追加してtegraプラットフォーム用に再コンパイルすると、このファイルがビルドされます。

ホストコントローラによってポーリングされたデータはどこにありますか?

データは確実にRAMに保存されます。バッファアドレスは実際にはユーザ空間アプリケーションによって設定されます。

+0

親愛なる@Shaibal - ユーザー空間アプリケーションとはどういう意味ですか? ehci-tegra.cで述べたDMAメモリマッピング? – fetteotter

+0

ユーザ空間では、私はDMAバッファによって上書きされるURBのバッファを意味しました。 URBはユーザスペースアプリケーションから来ます。 DMAのために連続した物理メモリが必要なので、バッファアドレスはehci-tegra.cに割り当てられたdmaメモリに置き換えられます。 – Shaibal

関連する問題