2013/1/20 Xiaofan Chen <xiaof...@gmail.com>: > On Fri, Jan 11, 2013 at 6:37 PM, Wander Lairson Costa > <wander.lair...@gmail.com> wrote: >>>> [1] https://github.com/walac/isochronous >>>> >>>> [2] https://github.com/walac/bmfw >>> >>> Can your test your firmware against the BenchmarkCon host software >>> from libusbdotnet? Under Linux, libusbdotnet will use libusb-1.0 >>> API so it indirectly tests the libusbx (assume you use libusbx >>> as the libusb-1.0 API provider). >> >> I guess so. Probably I will have to change the code to match my >> endpoints (they are in alternate setting 2). I will test and report >> the results. > > I just built your test firmware with a PIC18F87J50 USB PIM > with Microchip MPLAB 8.89 and MPLAB C18 3.44. Then I tested > it with libusbK 3.0.5.16 under Windows with libusbK.sys > driver, it seems to work. But this test does not involve > libusbx since libusbx does not suppport isoc transfer under > Windows as of now. > > C:\libusbK-dev-kit>klist > > Loading USB ID's maintained by Stephen J. Gowdy <linux.usb....@gmail.com>.. > > 1. Benchmark Device (Microchip Technology, Inc.) [Connected] > Service : libusbK > ClassGUID : {ECFB0CFD-74C4-4F52-BBF7-343461CD72AC} > DeviceID : USB\VID_04D8&PID_FA2E\LUSBW1 > DeviceInterfaceGUID : {77360352-3618-7749-A71D-1BB42062794E} > SymbolicLink : > \\?\usb#vid_04d8&pid_fa2e#lusbw1#{77360352-3618-7749- > a71d-1bb42062794e} > DevicePath : > \\?\usb#vid_04d8&pid_fa2e#lusbw1#{77360352-3618-7749- > a71d-1bb42062794e} > SerialNumber : LUSBW1 > BusNumber : 0 > DeviceAddress : 2 > > Select device (1-1) :1 > > Loading driver api.. > Getting descriptors.. > > -Device: > bLength :18 > bDescriptorType :0x01 > bcdUSB :0x0200 > bDeviceClass :0x00 (Defined at Interface level) > bDeviceSubClass :0x00 > bDeviceProtocol :0x00 > bMaxPacketSize0 :8 > idVendor :0x04D8 (Microchip Technology, Inc.) > idProduct :0xFA2E > bcdDevice :0x0001 > iManufacturer :1 (Travis Robinson) > iProduct :2 (Benchmark Device) > iSerialNumber :3 (LUSBW1) > bNumConfigurations :1 > !End Device > -Configuration: > bLength :9 > bDescriptorType :0x02 > wTotalLength :78 > bNumInterfaces :1 > bConfigurationValue :0x01 > iConfiguration :0 > bmAttributes :0xC0 > MaxPower :50 (100ma) > -Interface: > bLength :9 > bDescriptorType :0x04 > bInterfaceNumber :0x00 > bAlternateSetting :0x00 > bNumEndpoints :2 > bInterfaceClass :0x00 (Defined at Interface level) > bInterfaceSubClass :0x00 > bInterfaceProtocol :0x00 > iInterface :0 > -Endpoint: > bLength :7 > bDescriptorType :0x05 > bEndpointAddress :0x01 > bmAttributes :0x02 (Bulk) > wMaxPacketSize :16 > bInterval :0x00 > !End Endpoint > -Endpoint: > bLength :7 > bDescriptorType :0x05 > bEndpointAddress :0x81 > bmAttributes :0x02 (Bulk) > wMaxPacketSize :16 > bInterval :0x00 > !End Endpoint > !End Interface > -Interface: > bLength :9 > bDescriptorType :0x04 > bInterfaceNumber :0x00 > bAlternateSetting :0x01 > bNumEndpoints :2 > bInterfaceClass :0x00 (Defined at Interface level) > bInterfaceSubClass :0x00 > bInterfaceProtocol :0x00 > iInterface :0 > -Endpoint: > bLength :7 > bDescriptorType :0x05 > bEndpointAddress :0x01 > bmAttributes :0x03 (Interrupt) > wMaxPacketSize :16 > bInterval :0x01 > !End Endpoint > -Endpoint: > bLength :7 > bDescriptorType :0x05 > bEndpointAddress :0x81 > bmAttributes :0x03 (Interrupt) > wMaxPacketSize :16 > bInterval :0x01 > !End Endpoint > !End Interface > -Interface: > bLength :9 > bDescriptorType :0x04 > bInterfaceNumber :0x00 > bAlternateSetting :0x02 > bNumEndpoints :2 > bInterfaceClass :0x00 (Defined at Interface level) > bInterfaceSubClass :0x00 > bInterfaceProtocol :0x00 > iInterface :0 > -Endpoint: > bLength :7 > bDescriptorType :0x05 > bEndpointAddress :0x01 > bmAttributes :0x05 (Isochronous, Asynchronous, Data Endpoint) > wMaxPacketSize :32 > bInterval :0x01 > !End Endpoint > -Endpoint: > bLength :7 > bDescriptorType :0x05 > bEndpointAddress :0x81 > bmAttributes :0x05 (Isochronous, Asynchronous, Data Endpoint) > wMaxPacketSize :32 > bInterval :0x01 > !End Endpoint > !End Interface > !End Configuration > > C:\libusbK-dev-kit>kbench list mode=async buffercount=2 verify > device-count=1 > 1. Benchmark Device (USB\VID_04D8&PID_FA2E\LUSBW1) [libusbK] > Select device (1-1) :1 > > opened Benchmark Device (USB\VID_04D8&PID_FA2E\LUSBW1).. > Loop Test Information > Driver : libusbK > Vid / Pid : 04D8h / FA2Eh > DevicePath : > \\?\usb#vid_04d8&pid_fa2e#lusbw1#{77360352-3618-7749-a > 71d-1bb42062794e} > Device Speed : Low/Full > Interface # : 00h > Alt Interface # : 00h > Num Endpoints : 2 > Priority : 0 > Read Size : 4096 > Write Size : 4096 > Buffer Count : 2 > Display Refresh : 1000 (ms) > Transfer Timeout: 5000 (ms) > Retry Count : 0 > Verify Data : On > > Bulk Read (Ep81h) max packet size: 16 > Bulk Write (Ep01h) max packet size: 16 > > While the test is running: > Press 'Q' to quit > Press 'T' for test details > Press 'I' for status information > Press 'R' to reset averages > > Press 'Q' to exit, any other key to begin.. > Loop data synchronized. Offset=32 Byte=00h Reliability=99.2%. > Avg. Bytes/s: 172176.99 Transfers: 38 Bytes/s: 172176.99 > Avg. Bytes/s: 172191.28 Transfers: 80 Bytes/s: 172204.20 > Avg. Bytes/s: 172714.43 Transfers: 123 Bytes/s: 173696.25 > Avg. Bytes/s: 172628.35 Transfers: 165 Bytes/s: 172376.75 > Avg. Bytes/s: 172017.04 Transfers: 207 Bytes/s: 169656.80 > Avg. Bytes/s: 172287.65 Transfers: 248 Bytes/s: 173667.01 > Avg. Bytes/s: 172494.36 Transfers: 291 Bytes/s: 173696.25 > Avg. Bytes/s: 172648.16 Transfers: 334 Bytes/s: 173696.25 > Avg. Bytes/s: 172598.45 Transfers: 376 Bytes/s: 172204.20 > Avg. Bytes/s: 172576.15 Transfers: 418 Bytes/s: 172376.75 > Avg. Bytes/s: 172305.44 Transfers: 460 Bytes/s: 169656.80 > Avg. Bytes/s: 172184.59 Transfers: 501 Bytes/s: 170840.28 > Avg. Bytes/s: 172303.12 Transfers: 544 Bytes/s: 173696.25 > stopped Ep81h thread. ExitCode=0 > stopped Ep01h thread. ExitCode=0 > Loop Test Information > Driver : libusbK > Vid / Pid : 04D8h / FA2Eh > DevicePath : > \\?\usb#vid_04d8&pid_fa2e#lusbw1#{77360352-3618-7749-a > 71d-1bb42062794e} > Device Speed : Low/Full > Interface # : 00h > Alt Interface # : 00h > Num Endpoints : 2 > Priority : 0 > Read Size : 4096 > Write Size : 4096 > Buffer Count : 2 > Display Refresh : 1000 (ms) > Transfer Timeout: 5000 (ms) > Retry Count : 0 > Verify Data : On > > Bulk Read (Ep81h) max packet size: 16 > Total Bytes : 2228224 > Total Transfers : 544 > Avg. Bytes/sec : 172303.12 > Elapsed Time : 12.93 seconds > > Bulk Write (Ep01h) max packet size: 16 > Total Bytes : 2228224 > Total Transfers : 544 > Avg. Bytes/sec : 172303.12 > Elapsed Time : 12.93 seconds > > Press any key to exit.. >
Actually, the tests were done with bulk transfer, which works just fine. Isochronous endpoints are in the alternate setting 2. If you pass the argument 'altf=2' to the benchmark app, the error should occur. In my tests, it didn't work: ./Bm-winusb.exe vid=0x4d8 pid=0xfa2e altf=2 LibUsbDotNet USB Benchmark v2.2.9.110 Copyright (c) 2010 Travis Robinson. <libusbdot...@gmail.com> website: http://sourceforge.net/projects/libusbdotnet Benchmark device 04D8:FA2E opened.. Loop Test Information Vid / Pid : 04D8h / FA2Eh Interface # : 00h Alt Interface # : 02h Priority : Normal Buffer Size : 4096 Buffer Count : 1 Display Refresh : 1000 (ms) Transfer Timeout: 5000 (ms) Retry Count : 0 Verify Data : Off Isochronous Read (Ep81h) max packet size: 32 Isochronous Write (Ep01h) max packet size: 32 While the test is running: Press 'Q' to quit Press 'T' for test details Press 'I' for status information Press 'R' to reset averages Press 'Q' to exit, any other key to begin.. wrn:Zero-length transfer on Ep81h expected 4096. wrn:Zero-length transfer on Ep01h expected 4096. stopped Ep81h thread. stopped Ep01h thread. Loop Test Information Vid / Pid : 04D8h / FA2Eh Interface # : 00h Alt Interface # : 02h Priority : Normal Buffer Size : 4096 Buffer Count : 1 Display Refresh : 1000 (ms) Transfer Timeout: 5000 (ms) Retry Count : 0 Verify Data : Off Isochronous Read (Ep81h) max packet size: 32 Isochronous Write (Ep01h) max packet size: 32 Press any key to exit.. -- Best Regards, Wander Lairson Costa ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnmore_123012 _______________________________________________ libusbx-devel mailing list libusbx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusbx-devel