USB-无中断端点的MTP/PTP

USB-无中断端点的MTP/PTP,usb,endpoint,mtp,Usb,Endpoint,Mtp,由于我们计划在您的下一台设备上使用MTP(媒体传输协议),我们将评估使用MTP替代当前发布设备中当前(不稳定)的USB驱动程序的情况 此设备的限制是,其处理器(Strong Arm)最多只支持3个端点: 串口0是一个通用串行总线设备控制器(UDC),它支持三个端点,可以以12 Mbps的波特率操作半双工(仅从机,而不是主机或集线器控制器) 但根据规范,MTP至少需要4个端点(来自PTP规范): 设备应至少包含四个端点:默认端点、数据输入端点、数据输出端点和中断端点 现在的问题是:我们可以跳过设备

由于我们计划在您的下一台设备上使用MTP(媒体传输协议),我们将评估使用MTP替代当前发布设备中当前(不稳定)的USB驱动程序的情况

此设备的限制是,其处理器(Strong Arm)最多只支持3个端点:

串口0是一个通用串行总线设备控制器(UDC),它支持三个端点,可以以12 Mbps的波特率操作半双工(仅从机,而不是主机或集线器控制器)

但根据规范,MTP至少需要4个端点(来自PTP规范):

设备应至少包含四个端点:默认端点、数据输入端点、数据输出端点和中断端点

现在的问题是:我们可以跳过设备上的中断端点吗?我知道它违反了规范-但如果我们这样做会发生什么

从我们当前的评估软件中,我可以看到以下场景:

  • “可用空间”未更新-用户将看到有100Mb的可用内存,但放置1Mb文件会导致错误“内存不足”
  • 非主机驱动的操作在主机上不可见(因此,在设备上删除、创建或移动文件时,连接的主机不知道该操作)
  • 如果我们能接受它,这样实施是否明智


    更新:该死的。。。上次测试时,我刚刚删除了中断EP数据传输的代码。现在,我还删除了端点定义(不再创建端点),从此无法再建立MTP连接:(

    似乎windows驱动程序(wpd)需要中断端点-即使它没有被使用。运气不好


    有人知道,是否以及如何让MTP与3个端点一起工作吗?

    最后,我从Microsoft得到了一个答案:

    不支持3端点设置

    需要中断端点,以便驱动程序可以从设备接收MTP事件。这些事件是驱动程序将事件中继到应用程序的通知机制(例如,当创建、更新或删除对象时)

    如果您的设备未对端点执行任何操作(即不发送事件),则无论何时更改设备上的对象,诸如Explorer之类的应用程序都将无法正常运行

    所以我们埋葬了我们的计划(