aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathias K <kesmtp@freenet.de>2013-10-24 08:31:45 +0200
committerSpencer Oliver <spen@spen-soft.co.uk>2013-10-31 21:11:48 +0000
commita3c0f0546164874a50b2e8fb482403199ea2d358 (patch)
treecb6a784fecc993aab7d4e58995ab4937f4c9ba1c
parent4f6f065201e908497f087769dcdff1728466df4e (diff)
target: fix mem2array/array2mem
if data size is bigger than transfer buffer, all portions are transferred from/to the same target address - address advance after successful transmission missed. Change-Id: I79a6c388af197ac062d2807e397a2d7947400520 Signed-off-by: Sergey A. Borshch <sb-sf@users.sourceforge.net> Signed-off-by: Mathias K <kesmtp@freenet.de> Reviewed-on: http://openocd.zylin.com/1679 Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk> Tested-by: jenkins
-rw-r--r--src/target/target.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/target/target.c b/src/target/target.c
index 8ca1cf34..3042d5d6 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -3767,6 +3767,7 @@ static int target_mem2array(Jim_Interp *interp, struct target *target, int argc,
new_int_array_element(interp, varname, n, v);
}
len -= count;
+ addr += count * width;
}
}
@@ -3960,6 +3961,7 @@ static int target_array2mem(Jim_Interp *interp, struct target *target,
e = JIM_ERR;
break;
}
+ addr += count * width;
}
free(buffer);