X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstlink-usb.c;fp=src%2Fstlink-usb.c;h=f3f41e37a9bcdfa196adaa1a555d9f39cdcb7762;hb=0e22df918ef58b06beebe9c0f73f38a3852c900b;hp=6125ec3fa570491f67f060f3c7180bf9fdbce0e0;hpb=db5f0297bf4840b85d37e3460e705f5344928a98;p=fw%2Fstlink diff --git a/src/stlink-usb.c b/src/stlink-usb.c index 6125ec3..f3f41e3 100644 --- a/src/stlink-usb.c +++ b/src/stlink-usb.c @@ -756,31 +756,36 @@ stlink_t *stlink_open_usb(enum ugly_loglevel verbose, bool reset, char serial[16 ILOG("bus %03d dev %03d\n",devBus, devAddr); } - while (cnt--){ + while (cnt--) { libusb_get_device_descriptor( list[cnt], &desc ); if (desc.idVendor != USB_ST_VID) continue; - if (devBus && devAddr) - if ((libusb_get_bus_number(list[cnt])!=devBus) || (libusb_get_device_address(list[cnt])!=devAddr)) + if (devBus && devAddr) { + if ((libusb_get_bus_number(list[cnt]) != devBus) + || (libusb_get_device_address(list[cnt]) != devAddr)) { continue; - - if ( (desc.idProduct == USB_STLINK_32L_PID) || (desc.idProduct == USB_STLINK_NUCLEO_PID) ) { - if ((serial != NULL)) { - struct libusb_device_handle *handle; - - libusb_open(list[cnt], &handle); - sl->serial_size = libusb_get_string_descriptor_ascii(handle, desc.iSerialNumber, (unsigned char *)sl->serial, sizeof(sl->serial)); - libusb_close(handle); - if (sl->serial_size < 0) - continue; - else if (memcmp(serial, &sl->serial, sl->serial_size) == 0) - break; - } else { - break; } } + if ((desc.idProduct == USB_STLINK_32L_PID) || (desc.idProduct == USB_STLINK_NUCLEO_PID)) { + struct libusb_device_handle *handle; + + libusb_open(list[cnt], &handle); + sl->serial_size = libusb_get_string_descriptor_ascii(handle, desc.iSerialNumber, + (unsigned char *)sl->serial, sizeof(sl->serial)); + libusb_close(handle); + + if (sl->serial_size < 0) + continue; + if (serial == NULL) + break; + if (memcmp(serial, &sl->serial, sl->serial_size) == 0) + break; + + continue; + } + if (desc.idProduct == USB_STLINK_PID) { slu->protocoll = 1; break;