如果我使用具有中断端点(USB / KBD /触摸屏)的USB设备,则主机控制器通过轮询此端点从端点获取数据。 因此在Linux中,此管道称为URB(USB请求块)......此URB由主机控制器启动。 所以数据是由主机控制器收集的 - 现在,我失去了路径。 我认为数据被缓冲到ram,可能是由dma控制器(不确定)...并且主机控制器必须向中断控制器注册一个中断,以便Core可以处理最初来自USB设备的中断。 哪个驱动程序将中断注册到PIC?主机控制器轮询时存储的数据在哪里?
任何人都熟悉这个吗?
****我的规格:************* Jetson Tegra K1使用Ubuntu 14.04.4 TLS Egalax USB触摸屏 - USB隐藏设备
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 /输入/ INPUT8 [83.700372] hid-multitouch 0003:0EEF:C000.0007:输入:USB HID v2.10指针[eGalax Inc. eGalaxTouch EXC3000-1470-46.00.00] on usb-tegra-ehci.2-1.2.3 / input0 lsusb - v: 总线002设备012:ID 0eef:c000 D-WAV Scientific Co.,Ltd bInterfaceClass 3人机接口设备 bInterfaceSubClass 1引导接口子类 bInterfaceProtocol 2鼠标 端点描述符: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 传输类型中断 同步类型无 使用类型数据 wMaxPacketSize 0x0040 1x 64字节 bInterval
答案 0 :(得分:0)
哪个驱动程序将中断注册到PIC?
tegra平台的EHCI驱动程序注册中断。只需在“drivers / usb / host”中引用文件ehci-tegra.c即可。您可以添加调试打印并重新编译tegra平台,这个文件将被构建。
主机控制器轮询时存储的数据在哪里?
数据绝对存储在RAM中。缓冲区地址实际上是由用户空间应用程序设置的。