【发布时间】:2017-09-08 14:29:02
【问题描述】:
如果我使用带有端点中断(鼠标/KBD/触摸屏)的 USB 设备,则主机控制器通过轮询此端点从端点获取数据。 所以在 Linux 中,这个管道被称为 URB(USB 请求块)……这个 URB 是由主机控制器发起的。 所以数据是由主机控制器收集的——现在,我失去了路径。 我认为数据被缓冲到内存中,可能是由 dma 控制器(不确定)......并且主机控制器必须向中断控制器注册一个中断,以便核心可以处理最初来自 USB 设备的中断。 哪个驱动程序将中断注册到 PIC?主机控制器轮询时数据存储在哪里?
有人熟悉这个吗?
****我的规格:************* 带有 Ubuntu 14.04.4 TLS 的 Jetson Tegra K1 Egalax USB 触摸屏 - USB Hid 设备
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:1.0/输入/输入8 [83.700372] hid-multitouch 0003:0EEF:C000.0007: 输入:USB HID v2.10 指针 [eGalax Inc. eGalaxTouch EXC3000-1470-46.00.00] 在 usb-tegra-ehci.2-1.2.3/input0 lsusb - v: Bus 002 Device 012: ID 0eef:c000 D-WAV Scientific Co., Ltd bInterfaceClass 3 人机接口设备 bInterfaceSubClass 1 引导接口子类 bInterfaceProtocol 2 鼠标 端点描述符: b长度 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bm属性 3 传输类型中断 同步类型 无 使用类型数据 wMaxPacketSize 0x0040 1x 64 字节 b间隔
【问题讨论】:
标签: usb ubuntu-14.04 interrupt interrupt-handling