USB主机控制器引起的中断

USB主机控制器引起的中断,usb,ubuntu-14.04,interrupt,interrupt-handling,Usb,Ubuntu 14.04,Interrupt,Interrupt Handling,如果我使用的USB设备具有端点中断(鼠标/KBD/触摸屏),则主机控制器通过轮询此端点来从端点获取数据。 所以在Linux中,这个管道被称为URB(USB请求块)。。。该URB由主机控制器启动。 所以数据是由主机控制器收集的——现在,我失去了路径。 我认为数据被缓冲到ram中,可能是由dma控制器(不确定)。。。主机控制器必须向中断控制器注册一个中断,以便内核能够处理最初来自USB设备的中断。 哪个驱动程序将中断注册到PIC?当主机控制器轮询数据时,数据存储在哪里 有人熟悉这个吗? ****我

如果我使用的USB设备具有端点中断(鼠标/KBD/触摸屏),则主机控制器通过轮询此端点来从端点获取数据。 所以在Linux中,这个管道被称为URB(USB请求块)。。。该URB由主机控制器启动。 所以数据是由主机控制器收集的——现在,我失去了路径。 我认为数据被缓冲到ram中,可能是由dma控制器(不确定)。。。主机控制器必须向中断控制器注册一个中断,以便内核能够处理最初来自USB设备的中断。 哪个驱动程序将中断注册到PIC?当主机控制器轮询数据时,数据存储在哪里

有人熟悉这个吗?


****我的规格:************* Jetson Tegra K1与Ubuntu 14.04.4 TLS Egalax USB触摸屏-USB Hid设备

dmesg:input:eGalax Inc.eGalax EXC3000-1470-46.00.00 as/devices/platform/tegra ehci.2/usb2/2-1/2-1.2.3/2-1.2.3:1.0/input/input8 [83.700372]hid多点触控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: 总线002设备012:ID 0eef:c000 D-WAV科学有限公司 bInterfaceClass 3人机界面设备 Binterface子类1引导接口子类 BinterfaceProtocol2鼠标 端点描述符: 混合7 b脚本类型5 BENDPOINT地址0x81 EP 1 IN BM3属性 传输型中断 同步类型无 使用类型数据 wMaxPacketSize 0x0040 1x 64字节
bInterval

哪个驱动程序将中断注册到PIC

tegra平台的EHCI驱动程序注册中断。只需参考“drivers/usb/host”中的文件ehci tegra.c。您可以为tegra平台添加调试打印和重新编译,并将生成此文件

当主机控制器轮询数据时,数据存储在哪里

数据肯定存储在RAM中。缓冲区地址实际上是由用户空间应用程序设置的


亲爱的@Shaibal-你对用户空间应用程序是什么意思?正如ehci tegra.c中提到的DMA内存映射?按用户空间,我指的是URB中被DMA缓冲区覆盖的缓冲区。URB来自用户空间应用。由于DMA需要连续的物理内存,缓冲区地址被ehci tegra.c中分配的DMA内存所取代。