summaryrefslogtreecommitdiff
path: root/src/tcl
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-10 18:47:50 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-10 18:47:50 +0000
commit2b3f4fd293398f1868f8bad864f68f6ffec12ada (patch)
treef84df550cc6baaf4b5a88fd38002bf70986e4b1b /src/tcl
parent2858a9f740a49998bf2db1e6379c5c47133aea98 (diff)
downloadopenocd+libswd-2b3f4fd293398f1868f8bad864f68f6ffec12ada.tar.gz
openocd+libswd-2b3f4fd293398f1868f8bad864f68f6ffec12ada.tar.bz2
openocd+libswd-2b3f4fd293398f1868f8bad864f68f6ffec12ada.tar.xz
openocd+libswd-2b3f4fd293398f1868f8bad864f68f6ffec12ada.zip
Charles Hardin <ckhardin@gmail.com>
Add semantics to support memwrite(32,16,8) with an array2mem command Move the global up in bits2bytes.tcl so the set puts the value in the global context. Add memwrite procs to memory.tcl git-svn-id: svn://svn.berlios.de/openocd/trunk@786 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/tcl')
-rw-r--r--src/tcl/bitsbytes.tcl8
-rw-r--r--src/tcl/memory.tcl37
2 files changed, 34 insertions, 11 deletions
diff --git a/src/tcl/bitsbytes.tcl b/src/tcl/bitsbytes.tcl
index b1771b4b..9129ae0a 100644
--- a/src/tcl/bitsbytes.tcl
+++ b/src/tcl/bitsbytes.tcl
@@ -7,30 +7,28 @@
for { set x 0 } { $x < 32 } { set x [expr $x + 1]} {
set vn [format "BIT%d" $x]
- set $vn [expr (1 << $x)]
global $vn
-
+ set $vn [expr (1 << $x)]
}
# Create K bytes values
# __1K ... to __2048K
for { set x 1 } { $x < 2048 } { set x [expr $x * 2]} {
set vn [format "__%dK" $x]
- set $vn [expr (1024 * $x)]
global $vn
+ set $vn [expr (1024 * $x)]
}
# Create M bytes values
# __1M ... to __2048K
for { set x 1 } { $x < 2048 } { set x [expr $x * 2]} {
set vn [format "__%dM" $x]
- set $vn [expr (1024 * 1024 * $x)]
global $vn
+ set $vn [expr (1024 * 1024 * $x)]
}
proc create_mask { MSB LSB } {
return [expr (((1 << ($MSB - $LSB + 1))-1) << $LSB)]
-
}
# Cut Bits $MSB to $LSB out of this value.
diff --git a/src/tcl/memory.tcl b/src/tcl/memory.tcl
index 5ac3c4bd..42cd0627 100644
--- a/src/tcl/memory.tcl
+++ b/src/tcl/memory.tcl
@@ -78,31 +78,56 @@ proc address_info { ADDRESS } {
return "UNKNOWN 0"
}
-proc memread32 {ADDR } {
+proc memread32 {ADDR} {
set foo(0) 0
if ![ catch { mem2array foo 32 $ADDR 1 } msg ] {
return $foo(0)
} else {
- error "memead32: $msg"
+ error "memread32: $msg"
}
}
-proc memread16 {ADDR } {
+proc memread16 {ADDR} {
set foo(0) 0
if ![ catch { mem2array foo 16 $ADDR 1 } msg ] {
return $foo(0)
} else {
- error "memead16: $msg"
+ error "memread16: $msg"
}
}
-proc memread8 {ADDR } {
+proc memread8 {ADDR} {
set foo(0) 0
if ![ catch { mem2array foo 8 $ADDR 1 } msg ] {
return $foo(0)
} else {
- error "memead8: $msg"
+ error "memread8: $msg"
}
}
+proc memwrite32 {ADDR DATA} {
+ set foo(0) $DATA
+ if ![ catch { array2mem foo 32 $ADDR 1 } msg ] {
+ return $foo(0)
+ } else {
+ error "memwrite32: $msg"
+ }
+}
+proc memwrite16 {ADDR DATA} {
+ set foo(0) $DATA
+ if ![ catch { array2mem foo 16 $ADDR 1 } msg ] {
+ return $foo(0)
+ } else {
+ error "memwrite16: $msg"
+ }
+}
+
+proc memwrite8 {ADDR DATA} {
+ set foo(0) $DATA
+ if ![ catch { array2mem foo 8 $ADDR 1 } msg ] {
+ return $foo(0)
+ } else {
+ error "memwrite8: $msg"
+ }
+}