USBdevice Vault perf 테스트 툴을 사용하여, host<->device의 Bulk In, Bulk Out, Isochronous In transfer들의 bandwidth. accuracy를 파악할 수 있다.
- Using Zadig-2.8.exe
- If you can't see the deivce, check Option->List All Devices
- Install libusbK(v3.1.0.0)
- gcc로 컴파일 할 경우 링크 경로 지정 -> -L"{libusbk.dll 경로}" -l"usb"
- CMake, MinGW 사용, script 폴더의 uvperf_build, uvperf_exe 참조
- Visual Studio로 컴파일 할 경우 -> #pragma comment(lib, "libusbk.lib") 추가
uvperf -v VID -p PID -i INTERFACE -a AltInterface -e ENDPOINT -m TRANSFERMODE -T TIMER -t TIMEOUT -f FileIO -b BUFFERCOUNT -l READLENGTH -w WRITELENGTH -r REPEAT -S Example
- -v VID
USB Vendor ID - -p PID
USB Product ID - -i INTERFACE
USB Interface - -a AltInterface
USB Alternate Interface - -e ENDPOINT
USB Endpoint - -m TRANSFERMODE
0 = Async, 1 = Sync - -T TIMER
Timer in seconds - -t TIMEOUT
USB Transfer Timeout - -f FILEIO
Use file I/O, default : FALSE - -b BUFFERCOUNT
Number of buffers to use - -l READLENGTH
Length of read transfers - -w WRITELENGTH
Length of write transfers - -r REPEAT
Number of transfers to perform - -S
Show transfer data, default : FALSE
uvperf -v 0x1004 -p 0xa000 -i 0 -a 0 -e 0x81 -m 0 -t 1000 -l 1024 -r 1000 -R
This will perform 1000 bulk transfers of 1024 bytes to endpoint 0x81 on interface 0, alternate setting 0 of a device with VID 0x1004 and PID 0xA000 The transfers will have a timeout of 1000ms.
uvperf -l | -w Buffersize
then, you can select device and endpoint ( recommend type with buffer size and timeout with commands )
In the middle of excution, press "q" or "Q" then, show the log average Bandwidth ( Mpbs ), and total transfer
- Windows상에서만 test 가능
- Multi transfer 미지원