Address codereview comment from Steve Grubb <[email protected]>:
avoid a duplicate test. Plus other cleanup in the same code:
be "static", sane line lengths for source and diagnostics, and
fix misleading variable names.
---
comments anyone?
src/jtag/core.c | 57 ++++++++++++++++++++++++------------------------------
src/jtag/tcl.c | 2 -
2 files changed, 26 insertions(+), 33 deletions(-)
--- a/src/jtag/core.c
+++ b/src/jtag/core.c
@@ -385,7 +385,8 @@ void jtag_add_callback4(jtag_callback_t
interface_jtag_add_callback4(f, data0, data1, data2, data3);
}
-int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value, uint8_t
*in_check_mask, int num_bits);
+static int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value,
+ uint8_t *in_check_mask, int num_bits);
static int jtag_check_value_mask_callback(jtag_callback_data_t data0,
jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t
data3)
{
@@ -727,7 +728,8 @@ void jtag_add_sleep(uint32_t us)
jtag_set_error(interface_jtag_add_sleep(us));
}
-int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value, uint8_t
*in_check_mask, int num_bits)
+static int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value,
+ uint8_t *in_check_mask, int num_bits)
{
int retval = ERROR_OK;
@@ -739,39 +741,32 @@ int jtag_check_value_inner(uint8_t *capt
compare_failed = buf_cmp(captured, in_check_value, num_bits);
if (compare_failed) {
- /* An error handler could have caught the failing check
- * only report a problem when there wasn't a handler, or if the
handler
- * acknowledged the error
- */
- /*
- LOG_WARNING("TAP %s:",
- jtag_tap_name(field->tap));
- */
- if (compare_failed)
- {
- char *captured_char = buf_to_str(captured, (num_bits >
DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits, 16);
- char *in_check_value_char = buf_to_str(in_check_value,
(num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits, 16);
+ char *captured_str, *in_check_value_str;
+ int bits = (num_bits > DEBUG_JTAG_IOZ)
+ ? DEBUG_JTAG_IOZ
+ : num_bits;
- if (in_check_mask)
- {
- char *in_check_mask_char;
- in_check_mask_char = buf_to_str(in_check_mask,
(num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits, 16);
- LOG_WARNING("value captured during scan didn't
pass the requested check:");
- LOG_WARNING("captured: 0x%s check_value: 0x%s
check_mask: 0x%s",
- captured_char,
in_check_value_char, in_check_mask_char);
- free(in_check_mask_char);
- }
- else
- {
- LOG_WARNING("value captured during scan didn't
pass the requested check: captured: 0x%s check_value: 0x%s", captured_char,
in_check_value_char);
- }
+ /* NOTE: we've lost diagnostic context here -- 'which tap' */
- free(captured_char);
- free(in_check_value_char);
+ captured_str = buf_to_str(captured, bits, 16);
+ in_check_value_str = buf_to_str(in_check_value, bits, 16);
- retval = ERROR_JTAG_QUEUE_FAILED;
+ LOG_WARNING("Bad value '%s' captured during DR or IR scan:",
+ captured_str);
+ LOG_WARNING(" check_value: 0x%s", in_check_value_str);
+
+ free(captured_str);
+ free(in_check_value_str);
+
+ if (in_check_mask) {
+ char *in_check_mask_str;
+
+ in_check_mask_str = buf_to_str(in_check_mask, bits, 16);
+ LOG_WARNING(" check_mask: 0x%s", in_check_mask_str);
+ free(in_check_mask_str);
}
+ retval = ERROR_JTAG_QUEUE_FAILED;
}
return retval;
}
@@ -974,7 +969,7 @@ static bool jtag_examine_chain_match_tap
/* Try to examine chain layout according to IEEE 1149.1 ยง12
*/
-int jtag_examine_chain(void)
+static int jtag_examine_chain(void)
{
uint8_t idcode_buffer[JTAG_MAX_CHAIN_SIZE * 4];
unsigned device_count = 0;
--- a/src/jtag/tcl.c
+++ b/src/jtag/tcl.c
@@ -75,8 +75,6 @@ static int handle_verify_ircapture_comma
static int handle_verify_jtag_command(struct command_context_s *cmd_ctx, char
*cmd, char **args, int argc);
static int handle_tms_sequence_command(struct command_context_s *cmd_ctx, char
*cmd, char **args, int argc);
-extern int jtag_examine_chain(void);
-extern int jtag_validate_chain(void);
enum jtag_tap_cfg_param {
JCFG_EVENT
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development