Update ch347jtag.cpp

This commit is contained in:
ZhiYuanNJ 2024-02-27 14:23:00 +08:00
parent 7596ca81e9
commit 2eb620a493
1 changed files with 12 additions and 13 deletions

View File

@ -156,20 +156,19 @@ CH347Jtag::CH347Jtag(uint32_t clkHZ, int8_t verbose, int vid, int pid, uint8_t b
printError("libusb init failed"); printError("libusb init failed");
goto err_exit; goto err_exit;
} }
if (bus_addr != 0 && dev_addr != 0) { cnt = libusb_get_device_list(NULL, &devs);
cnt = libusb_get_device_list(NULL, &devs); if (cnt < 0) goto err_exit;
if (cnt < 0) goto err_exit; while ((dev = devs[i++]) != NULL) {
while ((dev = devs[i++]) != NULL) { if (libusb_get_device_descriptor(dev, &desc) < 0)
if (desc.idVendor != vid || desc.idProduct != pid) continue;
continue; if (desc.idVendor != vid || desc.idProduct != pid)
if (bus_addr != 0 && dev_addr != 0 && (libusb_get_bus_number(dev) != bus_addr || libusb_get_device_address(dev) != dev_addr)) continue;
continue; if (bus_addr != 0 && dev_addr != 0 && (libusb_get_bus_number(dev) != bus_addr || libusb_get_device_address(dev) != dev_addr))
libusb_open(dev, &dev_handle); continue;
break; libusb_open(dev, &dev_handle);
} break;
}else {
dev_handle = libusb_open_device_with_vid_pid(usb_ctx, vid, pid);
} }
libusb_free_device_list(devs, 1);
if (!dev_handle) { if (!dev_handle) {
printError("fails to open device"); printError("fails to open device");
goto usb_exit; goto usb_exit;