diff options
author | Øyvind Harboe <oyvind.harboe@zylin.com> | 2010-05-05 19:00:21 +0200 |
---|---|---|
committer | Øyvind Harboe <oyvind.harboe@zylin.com> | 2010-06-08 10:46:33 +0200 |
commit | 31bbb3cf0c9cffb98dbda1a357356bbf519a456f (patch) | |
tree | e6301acd51011a7972b1a7005f49ec2e043be281 /src/target | |
parent | 54f3f8e4c1477bec077e132cdccd8097938332e2 (diff) | |
download | openocd_libswd-31bbb3cf0c9cffb98dbda1a357356bbf519a456f.tar.gz openocd_libswd-31bbb3cf0c9cffb98dbda1a357356bbf519a456f.tar.bz2 openocd_libswd-31bbb3cf0c9cffb98dbda1a357356bbf519a456f.tar.xz openocd_libswd-31bbb3cf0c9cffb98dbda1a357356bbf519a456f.zip |
verify: display up to 128 diff's
Showing up to 128 differences.
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Diffstat (limited to 'src/target')
-rw-r--r-- | src/target/target.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/target/target.c b/src/target/target.c index c8c10126..01d94416 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -2682,6 +2682,7 @@ static COMMAND_HELPER(handle_verify_image_command_internal, int verify) } image_size = 0x0; + int diffs = 0; retval = ERROR_OK; for (i = 0; i < image.num_sections; i++) { @@ -2716,7 +2717,10 @@ static COMMAND_HELPER(handle_verify_image_command_internal, int verify) /* failed crc checksum, fall back to a binary compare */ uint8_t *data; - command_print(CMD_CTX, "checksum mismatch - attempting binary compare"); + if (diffs == 0) + { + LOG_ERROR("checksum mismatch - attempting binary compare"); + } data = (uint8_t*)malloc(buf_cnt); @@ -2737,22 +2741,22 @@ static COMMAND_HELPER(handle_verify_image_command_internal, int verify) if (data[t] != buffer[t]) { command_print(CMD_CTX, - "Verify operation failed address 0x%08x. Was 0x%02x instead of 0x%02x\n", + "diff %d address 0x%08x. Was 0x%02x instead of 0x%02x", + diffs, (unsigned)(t + image.sections[i].base_address), data[t], buffer[t]); - free(data); - free(buffer); - retval = ERROR_FAIL; - goto done; - } - if ((t%16384) == 0) - { - keep_alive(); + if (diffs++ >= 127) + { + command_print(CMD_CTX, "More than 128 errors, the rest are not printed."); + free(data); + free(buffer); + goto done; + } } + keep_alive(); } } - free(data); } } else @@ -2766,6 +2770,10 @@ static COMMAND_HELPER(handle_verify_image_command_internal, int verify) image_size += buf_cnt; } done: + if (diffs > 0) + { + retval = ERROR_FAIL; + } if ((ERROR_OK == retval) && (duration_measure(&bench) == ERROR_OK)) { command_print(CMD_CTX, "verified %" PRIu32 " bytes " |