#include <sys/time.h>
#include <sys/types.h>
#include <libusb.h>
+#include <errno.h>
#include "stlink-common.h"
#include "stlink-usb.h"
#include "uglylogging.h"
-#define LOG_TAG __FILE__
-#define DLOG(format, args...) ugly_log(UDEBUG, LOG_TAG, format, ## args)
-#define ILOG(format, args...) ugly_log(UINFO, LOG_TAG, format, ## args)
-#define WLOG(format, args...) ugly_log(UWARN, LOG_TAG, format, ## args)
-#define fatal(format, args...) ugly_log(UFATAL, LOG_TAG, format, ## args)
-
/* code from bsd timersub.h
http://www.gnu-darwin.org/www001/src/ports/net/libevnet/work/libevnet-0.3.8/libnostd/bsd/sys/time/timersub.h.html
*/
cmd[i++] = STLINK_DEBUG_COMMAND;
cmd[i++] = STLINK_JTAG_DRIVE_NRST;
- cmd[i++] = (value)?0:1;
+ cmd[i++] = value;
size = send_recv(slu, 1, cmd, slu->cmd_len, data, rep_len);
if (size == -1) {
devAddr=atoi(c);
ILOG("bus %03d dev %03d\n",devBus, devAddr);
}
- while (cnt){
- cnt--;
+ while (cnt--){
libusb_get_device_descriptor( list[cnt], &desc );
if (desc.idVendor!=USB_ST_VID) continue;
if (devBus && devAddr)
} else {
int error = libusb_open(list[cnt], &slu->usb_handle);
if( error !=0 ) {
- WLOG("Error %d opening ST-Link/V2 device %03d:%03d\n", error, libusb_get_bus_number(list[cnt]), libusb_get_device_address(list[cnt]));
+ WLOG("Error %d (%s) opening ST-Link/V2 device %03d:%03d\n",
+ error, strerror (errno), libusb_get_bus_number(list[cnt]), libusb_get_device_address(list[cnt]));
goto on_error;
}
}
if (reset) {
stlink_reset(sl);
}
- stlink_load_device_params(sl);
stlink_version(sl);
-
- error = 0;
+ error = stlink_load_device_params(sl);
on_libusb_error:
if (devs != NULL) {
libusb_exit(slu->libusb_ctx);
if (sl != NULL) free(sl);
if (slu != NULL) free(slu);
- return 0;
+ return NULL;
}