由于我们计划为您的下一个设备使用MTP(媒体传输协议),因此我们评估使用MTP替代当前发布设备中的当前(不稳定)USB驱动程序 .
该设备的限制是,其处理器(Strong Arm)最多只支持3个EndPoints:
“串行端口0是一个通用串行总线设备控制器(UDC),支持三个 endpoints ,可以12 Mbps的波特率运行半双工(仅限从机,而不是主机或集线器控制器) . ”
但根据规范,MTP至少需要4个 endpoints (来自PTP规范):
“设备应包含至少四个 endpoints :默认,数据输入,数据输出和中断 endpoints . ”
现在的问题是:我们可以跳过设备上的中断 endpoints 吗?我知道它违反了规范 - 但如果我们这样做会怎么样?
从我们当前的评估软件中,我可以看到以下场景:
-
'space available'未更新 - 用户将看到有100Mb的可用内存,但放置1Mb文件会出现错误"Not Enough Memory"
-
非主机驱动的操作在主机上不可见(因此,当删除,创建或移动设备文件时,连接的主机不知道它)
如果我们能够忍受它,那么以这种方式实施它是否明智?
UPDATE :该死的...当我上次测试时,我刚刚删除了中断-EP数据传输的代码 . 现在我也删除了 endpoints 定义(我不再创建 endpoints ),从这一点起,无法再 Build MTP连接:(
似乎windows驱动程序(wpd)需要中断 endpoints - 即使它没有被使用 . 厄运...
有没有人知道,是否以及如何让MTP与3个 endpoints 一起工作?
1 回答
最后我得到了微软的回答:
所以我们埋葬了我们的计划...... :(