flash/nor/at91samd: Use 32-bit register writes for ST-Link compat
[fw/openocd] / tcl / mem_helper.tcl
index 5955793e25692883a0ab974a900f205f61ff8045..0229d54b783ac606556a405bb0ef8acbd0481631 100644 (file)
@@ -1,10 +1,10 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 # Helper for common memory read/modify/write procedures
 
 # mrw: "memory read word", returns value of $reg
 proc mrw {reg} {
-       set value ""
-       mem2array value 32 $reg 1
-       return $value(0)
+       return [read_memory $reg 32 1]
 }
 
 add_usage_text mrw "address"
@@ -12,9 +12,7 @@ add_help_text mrw "Returns value of word in memory."
 
 # mrh: "memory read halfword", returns value of $reg
 proc mrh {reg} {
-       set value ""
-       mem2array value 16 $reg 1
-       return $value(0)
+       return [read_memory $reg 16 1]
 }
 
 add_usage_text mrh "address"
@@ -22,9 +20,7 @@ add_help_text mrh "Returns value of halfword in memory."
 
 # mrb: "memory read byte", returns value of $reg
 proc mrb {reg} {
-       set value ""
-       mem2array value 8 $reg 1
-       return $value(0)
+       return [read_memory $reg 8 1]
 }
 
 add_usage_text mrb "address"
@@ -34,7 +30,7 @@ add_help_text mrb "Returns value of byte in memory."
 #       $reg <== ((value & ~$clearbits) | $setbits)
 proc mmw {reg setbits clearbits} {
        set old [mrw $reg]
-       set new [expr ($old & ~$clearbits) | $setbits]
+       set new [expr {($old & ~$clearbits) | $setbits}]
        mww $reg $new
 }