我知道USB端点有一些模式(控制、批量、中断和同步),它们可以用于各种目的,但我不知道如何在小工具中将USB端点更改为这些模式?我已经阅读了USB2.0规范,然后我可以通过以下设置获得USB传输描述符:
ctrl.bRequestType = USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_ENDPOINT;
ctrl.bRequest = USB_REQ_GET_DESCRIPTOR;
ctrl.wIndex = 0;
ctrl.wLength = sizeof(buff);
ctrl.data = buff;
ctrl.wValue = (USB_DT_CONFIG << 8) | 0;
result = ioctl(fd, USBDEVFS_CONTROL, &ctrl);
但是我仍然不知道我应该做些什么来改变USB传输模式?
发布于 2016-02-04 16:57:09
端点在设备的描述符中描述。
如果不(虚拟地)拔出并重新枚举设备,则不可能改变描述符。
要允许更改单个接口的端点,您可以使用备用设置。
要允许更改设备的更多属性,您可以使用多个配置。
要实现这一点,您需要在描述符中列出所有替代设置/配置,并实现设置接口/配置请求。
https://stackoverflow.com/questions/35147498
复制相似问题