Hi all, The attached patch replaces several for-loops with equivalent memcpy. Please apply.
Cheers, Zach
Index: src/jtag/jlink.c =================================================================== --- src/jtag/jlink.c (revision 1520) +++ src/jtag/jlink.c (working copy) @@ -665,8 +665,6 @@ static int jlink_tap_execute(void) { int byte_length; - int tms_offset; - int tdi_offset; int i; int result; @@ -680,21 +678,10 @@ usb_out_buffer[1] = 0; usb_out_buffer[2] = (tap_length >> 0) & 0xff; usb_out_buffer[3] = (tap_length >> 8) & 0xff; + memcpy(usb_out_buffer + 4, tms_buffer, byte_length); + memcpy(usb_out_buffer + 4 + byte_length, tdi_buffer, byte_length); - tms_offset = 4; - for (i = 0; i < byte_length; i++) - { - usb_out_buffer[tms_offset + i] = tms_buffer[i]; - } - - tdi_offset = tms_offset + byte_length; - for (i = 0; i < byte_length; i++) - { - usb_out_buffer[tdi_offset + i] = tdi_buffer[i]; - } - result = jlink_usb_message(jlink_jtag_handle, 4 + 2 * byte_length, byte_length); - if (result != byte_length) { LOG_ERROR("jlink_tap_execute, wrong result %d (expected %d)", @@ -702,8 +689,7 @@ return ERROR_JTAG_QUEUE_FAILED; } - for (i = 0; i < byte_length; i++) - tdo_buffer[i] = usb_in_buffer[i]; + memcpy(tdo_buffer, usb_in_buffer, byte_length); for (i = 0; i < pending_scan_results_length; i++) {
_______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development