pc-stlinkv2: Try first to reset device if we read a strange version number.
This commit is contained in:
parent
44f471db53
commit
5d59338de5
|
@ -800,10 +800,23 @@ void stlink_init(int argc, char **argv)
|
||||||
Stlink.req_trans = libusb_alloc_transfer(0);
|
Stlink.req_trans = libusb_alloc_transfer(0);
|
||||||
Stlink.rep_trans = libusb_alloc_transfer(0);
|
Stlink.rep_trans = libusb_alloc_transfer(0);
|
||||||
stlink_version();
|
stlink_version();
|
||||||
if (Stlink.ver_stlink < 3 && Stlink.ver_jtag < 32) {
|
if ((Stlink.ver_stlink < 3 && Stlink.ver_jtag < 32) ||
|
||||||
DEBUG("Please update Firmware\n");
|
(Stlink.ver_stlink == 3 && Stlink.ver_jtag < 3)) {
|
||||||
goto error_1;
|
/* Maybe the adapter is in some strange state. Try to reset */
|
||||||
} else if (Stlink.ver_stlink == 3 && Stlink.ver_jtag < 3) {
|
int result = libusb_reset_device(Stlink.handle);
|
||||||
|
DEBUG("Trying reset\n");
|
||||||
|
if (result == LIBUSB_ERROR_BUSY) { /* Try again */
|
||||||
|
platform_delay(50);
|
||||||
|
result = libusb_reset_device(Stlink.handle);
|
||||||
|
}
|
||||||
|
if (result != LIBUSB_SUCCESS) {
|
||||||
|
DEBUG("libusb_reset_device failed\n");
|
||||||
|
goto error_1;
|
||||||
|
}
|
||||||
|
stlink_version();
|
||||||
|
}
|
||||||
|
if ((Stlink.ver_stlink < 3 && Stlink.ver_jtag < 32) ||
|
||||||
|
(Stlink.ver_stlink == 3 && Stlink.ver_jtag < 3)) {
|
||||||
DEBUG("Please update Firmware\n");
|
DEBUG("Please update Firmware\n");
|
||||||
goto error_1;
|
goto error_1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue