Hi all,
This patch unwinds the logic in jlink_get_status/jlink_get_version_info.
Cheers,
Zach
Index: src/jtag/jlink.c
===================================================================
--- src/jtag/jlink.c (revision 1497)
+++ src/jtag/jlink.c (working copy)
@@ -485,53 +479,55 @@
int result;
jlink_simple_command(EMU_CMD_GET_STATE);
- result = jlink_usb_read(jlink_jtag_handle, 8);
- if (result == 8)
+ result = jlink_usb_read(jlink_jtag_handle, 8);
+ if (result != 8)
{
- int vref = usb_in_buffer[0] + (usb_in_buffer[1] << 8);
- LOG_INFO("Vref = %d.%d TCK = %d TDI = %d TDO = %d TMS = %d SRST = %d TRST = %d\n", \
- vref / 1000, vref % 1000, \
- usb_in_buffer[2], usb_in_buffer[3], usb_in_buffer[4], \
- usb_in_buffer[5], usb_in_buffer[6], usb_in_buffer[7]);
-
- if (vref < 1500)
- {
- LOG_ERROR("Vref too low. Check Target Power\n");
- }
- }
- else
- {
LOG_ERROR("J-Link command EMU_CMD_GET_STATE failed (%d)\n", result);
+ return ERROR_JTAG_DEVICE_ERROR;
}
+ int vref = usb_in_buffer[0] + (usb_in_buffer[1] << 8);
+ LOG_INFO("Vref = %d.%d TCK = %d TDI = %d TDO = %d TMS = %d SRST = %d TRST = %d\n", \
+ vref / 1000, vref % 1000, \
+ usb_in_buffer[2], usb_in_buffer[3], usb_in_buffer[4], \
+ usb_in_buffer[5], usb_in_buffer[6], usb_in_buffer[7]);
+
+ if (vref < 1500)
+ LOG_ERROR("Vref too low. Check Target Power\n");
+
return ERROR_OK;
}
static int jlink_get_version_info(void)
{
int result;
- int len = 0;
+ int len;
/* query hardware version */
jlink_simple_command(EMU_CMD_VERSION);
- result = jlink_usb_read(jlink_jtag_handle, 2);
- if (result == 2)
+ result = jlink_usb_read(jlink_jtag_handle, 2);
+ if (2 != result)
{
- len = buf_get_u32(usb_in_buffer, 0, 16);
- result = jlink_usb_read(jlink_jtag_handle, len);
+ LOG_ERROR("J-Link command EMU_CMD_VERSION failed (%d)\n",
+ result);
+ return ERROR_JTAG_DEVICE_ERROR;
+ }
- if (result == len)
- {
- usb_in_buffer[result] = 0;
- LOG_INFO("%s", (char *)usb_in_buffer);
- return ERROR_OK;
- }
+ len = buf_get_u32(usb_in_buffer, 0, 16);
+ result = jlink_usb_read(jlink_jtag_handle, len);
+ if (result != len)
+ {
+ LOG_ERROR("J-Link command EMU_CMD_VERSION failed (%d)\n",
+ result);
+ return ERROR_JTAG_DEVICE_ERROR;
}
- LOG_ERROR("J-Link command EMU_CMD_VERSION failed (%d)\n", result);
- return ERROR_JTAG_DEVICE_ERROR;
+ usb_in_buffer[result] = 0;
+ LOG_INFO("%s", (char *)usb_in_buffer);
+
+ return ERROR_OK;
}
static int jlink_handle_jlink_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development