From: Paul Fertser Date: Mon, 9 Apr 2018 20:00:10 +0000 (+0300) Subject: contrib: rpc_examples: python: fix memory retrieval X-Git-Tag: v0.11.0-rc1~765 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=92c50fda2bbe0061d26a420332ba625bc780cdc4;hp=5202d82a954627c6706529a82447aad4c63aefcc contrib: rpc_examples: python: fix memory retrieval mem2array returns a Tcl (associative) array and so the order of elements is not guaranteed. Treat it as such. Change-Id: Ie4d1219faac1e60247ca13bc2eedf22041a9a9e9 Signed-off-by: Paul Fertser Reviewed-on: http://openocd.zylin.com/4487 Tested-by: jenkins Reviewed-by: Christopher Head --- diff --git a/contrib/rpc_examples/ocd_rpc_example.py b/contrib/rpc_examples/ocd_rpc_example.py index 6c8529cdce..b585aaa42d 100755 --- a/contrib/rpc_examples/ocd_rpc_example.py +++ b/contrib/rpc_examples/ocd_rpc_example.py @@ -92,9 +92,10 @@ class OpenOcd: self.send("array unset output") # better to clear the array before self.send("mem2array output %d 0x%x %d" % (wordLen, address, n)) - output = self.send("ocd_echo $output").split(" ") + output = [*map(int, self.send("ocd_echo $output").split(" "))] + d = dict([tuple(output[i:i + 2]) for i in range(0, len(output), 2)]) - return [int(output[2*i+1]) for i in range(len(output)//2)] + return [d[k] for k in sorted(d.keys())] def writeVariable(self, address, value): assert value is not None