2

次のデバイスにはMTP(Media Transfer Protocol)を使用する予定なので、現在リリースされているデバイスの現在の(不安定な)USBドライバーの代わりにMTPを使用することを評価します。

このデバイスの制限は、そのプロセッサ(Strong Arm)が最大3つのエンドポイントのみをサポートすることです。

「シリアルポート0は、3つのエンドポイントをサポートし、12 Mbpsのボーレートで半二重動作できるユニバーサルシリアルバスデバイスコントローラー(UDC)です(スレーブのみ、ホストまたはハブコントローラーではありません)。」

ただし、仕様によれば、MTPには少なくとも4つのエンドポイントが必要です(PTP仕様から)。

「デバイスには、デフォルト、データ入力、データ出力、および割り込みエンドポイントの少なくとも4つのエンドポイントが含まれている必要があります。」

ここで質問:デバイスの割り込みエンドポイントをスキップできますか?仕様に違反していることは知っていますが、違反するとどうなりますか?

現在の評価ソフトウェアから、次のシナリオを見ることができます。

  1. 「使用可能なスペース」は更新されません。ユーザーには100Mbの空きメモリがあることがわかりますが、1Mbのファイルを配置すると「メモリが不足しています」というエラーが表示されます。
  2. ホスト主導以外のアクションはホストに表示されません(したがって、デバイス上のファイルが削除、作成、または移動された場合、接続されたホストはそれを認識しません)

私たちがそれと一緒に暮らせるのであれば、このように実装することをお勧めしますか?


更新:くそー...前回テストしたとき、割り込みEPデータ送信のコードを削除しました。ここで、エンドポイント定義も削除し(エンドポイントはもう作成しません)、この時点からMTP接続を確立できなくなりました:(

Windowsドライバー(wpd)は、使用されていない場合でも、割り込みエンドポイントを必要としているようです。不運...

MTPを3つのエンドポイントで動作させるかどうか、またどのように動作させるかについて、誰かが考えていますか?

4

1 に答える 1

1

最後に、マイクロソフトから回答を得ました。

3エンドポイントの設定はサポートされていません。

ドライバーがデバイスからMTPイベントを受信できるようにするには、割り込みエンドポイントが必要です。これらのイベントは、ドライバーがイベントをアプリケーションに中継するために依存する通知メカニズムです(たとえば、オブジェクトが作成、更新、または削除されたとき)。

デバイスがエンドポイントに対して何も実行しない場合(つまり、イベントを送信しない場合)、デバイス上のオブジェクトが変更されるたびに、エクスプローラーなどのアプリケーションは正しく動作しません。

だから私たちは計画を埋めました...:(

于 2013-03-18T09:52:46.817 に答える