]> git.sur5r.net Git - openocd/commitdiff
target: fix mem2array/array2mem
authorMathias K <kesmtp@freenet.de>
Thu, 24 Oct 2013 06:31:45 +0000 (08:31 +0200)
committerSpencer Oliver <spen@spen-soft.co.uk>
Thu, 31 Oct 2013 21:11:48 +0000 (21:11 +0000)
 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
src/target/target.c

index 8ca1cf34faf33ee3b66fd5d7f6af9fe064edd940..3042d5d6cf0a43ab698175c55897739435574d1b 100644 (file)
@@ -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);