Skip to content

Using Usb-device Vault perf, validate device's bulk I/O, Isochronous In transfer

License

Notifications You must be signed in to change notification settings

Vaultmicro/uvperf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
gh-t-vaultmicro
Jul 30, 2024
0a908c8 · Jul 30, 2024

History

1 Commit
Jul 30, 2024
Jul 30, 2024
Jul 30, 2024
Jul 30, 2024
Jul 30, 2024
Jul 30, 2024
Jul 30, 2024
Jul 30, 2024
Jul 30, 2024

Repository files navigation

Goal of uvperf

USBdevice Vault perf 테스트 툴을 사용하여, host<->device의 Bulk In, Bulk Out, Isochronous In transfer들의 bandwidth. accuracy를 파악할 수 있다.

How to run uvperf

Install libusbK driver

  1. Using Zadig-2.8.exe
  2. If you can't see the deivce, check Option->List All Devices
  3. Install libusbK(v3.1.0.0)

uvperf.c

  1. gcc로 컴파일 할 경우 링크 경로 지정 -> -L"{libusbk.dll 경로}" -l"usb"
  2. CMake, MinGW 사용, script 폴더의 uvperf_build, uvperf_exe 참조
  3. Visual Studio로 컴파일 할 경우 -> #pragma comment(lib, "libusbk.lib") 추가

Usage of uvperf

CLI

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.

List

uvperf -l | -w Buffersize

then, you can select device and endpoint ( recommend type with buffer size and timeout with commands )

Bandwitdh

In the middle of excution, press "q" or "Q" then, show the log average Bandwidth ( Mpbs ), and total transfer

Known Issue

  1. Windows상에서만 test 가능
  2. Multi transfer 미지원

About

Using Usb-device Vault perf, validate device's bulk I/O, Isochronous In transfer

Resources

License

Stars

Watchers

Forks

Packages

No packages published