在DFU驱动程序的上下文中,我试图用长度为零的数据包(而不是最大大小的倍数,仅为零字节)来响应传输中的USB控件。但是,主机返回时具有超时条件。我尝试了这两种方法,dfu工具和相应的协议,以及一个使用pyusb的最小工作示例,它只是在传输某种长度的控制和不返回数据的设备上发出一个控制。
我的关键问题是:我是通过使用NAK响应来实现这一点,还是应该将端点设置为有效但没有任何数据?规范对此相当模糊,国际海事组织。
以下是一些技术细节,因为我不知道问题出在哪里:
发布于 2022-02-28 07:23:23
听起来,您正在对设备的固件进行编程,当主机启动控件读取传输时,您希望您的设备给出一个0字节长的响应。
您不能简单地发送NAK令牌:当数据尚未准备好时,设备就是这样做的,这会导致主机稍后再试一次读取数据。
实际上,您必须向主机发送一个0长度的IN数据包。当主机接收到此数据包时,它会看到数据包小于最大数据包大小,因此它知道控制传输的数据阶段已经完成,并进入状态阶段。
https://stackoverflow.com/questions/71283267
复制相似问题