|
发表于 2005-9-12 18:30:54
|
显示全部楼层
你看的停仔细的,这个程序大部分是zhaoic提供的,我主要是做移植的工作。
我认为:
(1) a3 00 00 00 02 00 04 00 是USBTEST程序里接收到那8个字节 SetupPkt ,但只是get status,除了get status,还有其他的标准的usb设备请求命令。在代码中有如下标准usb设备请求命令,主要通过SetupPkt[1]判断:
U8 (*StdDevReq[])(U8 *SetupPkt) = {
UsbGetStatus,
UsbClrFeature,
UsbReserved,
UsbSetFeature,
UsbReserved,
UsbSetAddress,
UsbGetDescriptor,
UsbReserved,
UsbGetConfiguration,
UsbSetConfiguration,
UsbGetInterface,
UsbSetInterface,
UsbReserved,
UsbReserved,
UsbReserved,
UsbReserved
};
(2)SetupPkt [6]=0X04 表示设备(lumit4510)向主机回送字节数,
在usbtest-bushound.txt 中,在get status的下一行四个数据就是的。
例如:
13.0 CTL a3 00 00 00 GET STATUS 2.1.0(2)
02 00 04 00 2.1.4
13.0 DI 01 01 01 00 .... 2.2.0
其中,DI 01 01 01 00 就是对get status的响应。
(3)if(SetupPkt[6]!=2)
return 1;
我认为它表示不是标准的请求命令,见代码
if(!StdDevReq[SetupPkt[1]&0xf](SetupPkt));
return;
至于为什么这样编程,我也不是很明白。
可能实现这个程序的初衷并不是为实现点灯测试程序,而只是用点灯例子来验证这个程序中的部分功能吧? |
|