From: Salvador Date: Sat, 17 Mar 2012 08:25:23 +0000 (+0100) Subject: Bug in src/target/mips32_pracc.c X-Git-Tag: v0.6.0-rc1~177 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1274df07f128e97cc75f68b24303ebcfe440ddde;p=openocd Bug in src/target/mips32_pracc.c The bug shows up with the command "mdw addres count" and only if count>1024 (count>0x400). The first 1024 values shows as expected, but the rest of the values are wrong. Name of variable bytesread" is changed to "wordsread" to reflect what really does. Change-Id: Iad79393e72da2637551c5ae6e829e3873605c520 Signed-off-by: Salvador Reviewed-on: http://openocd.zylin.com/527 Tested-by: jenkins Reviewed-by: Spencer Oliver --- diff --git a/src/target/mips32_pracc.c b/src/target/mips32_pracc.c index 267a4ffd..0cada4fa 100644 --- a/src/target/mips32_pracc.c +++ b/src/target/mips32_pracc.c @@ -343,10 +343,10 @@ static int mips32_pracc_read_mem32(struct mips_ejtag *ejtag_info, uint32_t addr, int retval = ERROR_OK; int blocksize; - int bytesread; + int wordsread; uint32_t param_in[2]; - bytesread = 0; + wordsread = 0; while (count > 0) { blocksize = count; @@ -357,13 +357,13 @@ static int mips32_pracc_read_mem32(struct mips_ejtag *ejtag_info, uint32_t addr, param_in[1] = blocksize; retval = mips32_pracc_exec(ejtag_info, ARRAY_SIZE(code), code, - ARRAY_SIZE(param_in), param_in, blocksize, &buf[bytesread], 1); + ARRAY_SIZE(param_in), param_in, blocksize, &buf[wordsread], 1); if (retval != ERROR_OK) return retval; count -= blocksize; - addr += blocksize; - bytesread += blocksize; + addr += blocksize*sizeof(uint32_t); + wordsread += blocksize; } return retval;