0

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 転送モードを変更するにはどうすればよいかわかりません。

4

1 に答える 1

1

エンドポイントは、デバイスの記述子に記述されています。

デバイスを (仮想的に) 取り外して再列挙せずに記述子を変更することはできません。

1 つのインターフェイスのエンドポイントを変更できるようにするために、別の設定を使用できます。
デバイスのより多くのプロパティを変更できるようにするために、複数の構成を使用できます。

これを実装するには、記述子にすべての代替設定/構成をリストし、set インターフェイス/構成要求を実装する必要があります。

于 2016-02-04T08:57:08.503 に答える