X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstlink-usb.c;h=8f5c6c410c46420166f817bab8e781db8bc64d62;hb=957b9c504fa6984314e0dd00958500dcf622ac9e;hp=04f0b2cbef665fc0eb102ec6987ab375ad67fcbd;hpb=7eb080490ce34e3daf6e0ab10743113acbc5a635;p=fw%2Fstlink diff --git a/src/stlink-usb.c b/src/stlink-usb.c index 04f0b2c..8f5c6c4 100644 --- a/src/stlink-usb.c +++ b/src/stlink-usb.c @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include "stlink-common.h" #include "stlink-usb.h" @@ -127,8 +127,6 @@ ssize_t send_recv(struct stlink_libusb* handle, int terminate, } if ((handle->protocoll == 1) && terminate) { - fprintf(stderr, "This is never used....\n"); - exit(EXIT_FAILURE); /* Read the SG reply */ unsigned char sg_buf[13]; libusb_fill_bulk_transfer @@ -157,7 +155,6 @@ static int fill_command int i = 0; memset(cmd, 0, sizeof (sl->c_buf)); if(slu->protocoll == 1) { - fprintf(stderr, "This is never used....\n"); cmd[i++] = 'U'; cmd[i++] = 'S'; cmd[i++] = 'B'; @@ -203,7 +200,7 @@ uint32_t _stlink_usb_read_debug32(stlink_t *sl, uint32_t addr) { size = send_recv(slu, 1, cmd, slu->cmd_len, rdata, rep_len); if (size == -1) { printf("[!] send_recv\n"); - return; + return 0; } return read_uint32(rdata, 4); } @@ -636,11 +633,14 @@ stlink_t* stlink_open_usb(const int verbose) { slu->usb_handle = libusb_open_device_with_vid_pid(slu->libusb_ctx, USB_ST_VID, USB_STLINK_32L_PID); if (slu->usb_handle == NULL) { - // TODO - free usb context too... - WLOG("Couldn't find any ST-Link/V2 devices"); - goto on_error; + slu->usb_handle = libusb_open_device_with_vid_pid(slu->libusb_ctx, USB_ST_VID, USB_STLINK_PID); + if (slu->usb_handle == NULL) { + WLOG("Couldn't find any ST-Link/V2 devices"); + goto on_error; + } + slu->protocoll = 1; } - + if (libusb_kernel_driver_active(slu->usb_handle, 0) == 1) { int r;