This is an automated email from Gerrit.

Marc Schink (d...@zapb.de) just uploaded a new patch set to Gerrit, which you 
can find at http://openocd.zylin.com/6308

-- gerrit

commit 24f54782aad7b270f4149ff0349c3846046cd014
Author: Marc Schink <d...@zapb.de>
Date:   Mon Jun 7 14:40:30 2021 +0200

    target: Decprecate array2mem and mem2array
    
    Replace 'mem2array' and array2mem' with a Tcl wrapper that
    internally uses 'read_memory' and 'write_memory'.
    
    The target-specific 'mem2array' and 'array2mem' functions
    remain for now.
    
    Change-Id: If24c22a76ac72d4c26916a95f7f17902b41b6d9e
    Signed-off-by: Marc Schink <d...@zapb.de>

diff --git a/src/target/startup.tcl b/src/target/startup.tcl
index 54a3942..2d5bcce 100644
--- a/src/target/startup.tcl
+++ b/src/target/startup.tcl
@@ -207,6 +207,36 @@ proc init_target_events {} {
 proc init_board {} {
 }
 
+lappend _telnet_autocomplete_skip "mem2array"
+add_usage_text mem2array "read 8/16/32 bit memory and return as a TCL array 
for script processing"
+proc mem2array {arrayname bitwidth address count {phys ""}} {
+       echo "DEPRECATED! use 'read_memory' not 'mem2array'"
+
+       upvar $arrayname $arrayname
+       set $arrayname ""
+       set i 0
+
+       foreach elem [read_memory $address $bitwidth $count {*}$phys] {
+               set ${arrayname}($i) $elem
+               incr i
+       }
+}
+
+lappend _telnet_autocomplete_skip "array2mem"
+add_usage_text array2mem "convert a TCL array to memory locations and write 
the 8/16/32 bit values"
+proc array2mem {arrayname bitwidth address count {phys ""}} {
+       echo "DEPRECATED! use 'write_memory' not 'array2mem'"
+
+       upvar $arrayname $arrayname
+       set data ""
+
+       for {set i 0} {$i < $count} {incr i} {
+               lappend data [expr $${arrayname}($i)]
+       }
+
+       write_memory $address $bitwidth $data {*}$phys
+}
+
 # smp_on/smp_off were already DEPRECATED in v0.11.0 through 
http://openocd.zylin.com/4615
 lappend _telnet_autocomplete_skip "aarch64 smp_on"
 proc "aarch64 smp_on" {args} {
diff --git a/src/target/target.c b/src/target/target.c
index 7e9a988..3a02968 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -4383,23 +4383,6 @@ static int new_u64_array_element(Jim_Interp *interp, 
const char *varname, int id
        return result;
 }
 
-static int jim_mem2array(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
-{
-       struct command_context *context;
-       struct target *target;
-
-       context = current_command_context(interp);
-       assert(context != NULL);
-
-       target = get_current_target(context);
-       if (target == NULL) {
-               LOG_ERROR("mem2array: no current target");
-               return JIM_ERR;
-       }
-
-       return target_mem2array(interp, target, argc - 1, argv + 1);
-}
-
 static int target_mem2array(Jim_Interp *interp, struct target *target, int 
argc, Jim_Obj *const *argv)
 {
        int e;
@@ -4754,23 +4737,6 @@ static int get_u64_array_element(Jim_Interp *interp, 
const char *varname, size_t
        return result;
 }
 
-static int jim_array2mem(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
-{
-       struct command_context *context;
-       struct target *target;
-
-       context = current_command_context(interp);
-       assert(context != NULL);
-
-       target = get_current_target(context);
-       if (target == NULL) {
-               LOG_ERROR("array2mem: no current target");
-               return JIM_ERR;
-       }
-
-       return target_array2mem(interp, target, argc-1, argv + 1);
-}
-
 static int target_array2mem(Jim_Interp *interp, struct target *target,
                int argc, Jim_Obj *const *argv)
 {
@@ -7028,22 +6994,6 @@ static const struct command_registration 
target_exec_command_handlers[] = {
                .usage = "filename [offset [type]]",
        },
        {
-               .name = "mem2array",
-               .mode = COMMAND_EXEC,
-               .jim_handler = jim_mem2array,
-               .help = "read 8/16/32 bit memory and return as a TCL array "
-                       "for script processing",
-               .usage = "arrayname bitwidth address count",
-       },
-       {
-               .name = "array2mem",
-               .mode = COMMAND_EXEC,
-               .jim_handler = jim_array2mem,
-               .help = "convert a TCL array to memory locations "
-                       "and write the 8/16/32 bit values",
-               .usage = "arrayname bitwidth address count",
-       },
-       {
                .name = "read_memory",
                .mode = COMMAND_EXEC,
                .jim_handler = jim_read_memory,

-- 

Reply via email to