diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2010-09-21 16:06:37 +0800 |
---|---|---|
committer | Øyvind Harboe <oyvind.harboe@zylin.com> | 2010-09-21 12:25:59 +0200 |
commit | edefee988045558d5d306453ce352dc06bcb7a03 (patch) | |
tree | 65a641398a6e7515b3e5adcd2ceb3bb836ea85e8 | |
parent | ea48794210037699bdde44014238c10c9968a72d (diff) | |
download | riscv-openocd-edefee988045558d5d306453ce352dc06bcb7a03.zip riscv-openocd-edefee988045558d5d306453ce352dc06bcb7a03.tar.gz riscv-openocd-edefee988045558d5d306453ce352dc06bcb7a03.tar.bz2 |
TCL scripts: collect duplicated procedures
TCL procedures mrw and mmw, originally in DaVinci target code,
are duplicated in other TCL scripts.
Moved in a common helper file, and added help/usage description.
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
-rw-r--r-- | tcl/mem_helper.tcl | 22 | ||||
-rw-r--r-- | tcl/target/c100helper.tcl | 16 | ||||
-rw-r--r-- | tcl/target/davinci.cfg | 15 | ||||
-rw-r--r-- | tcl/target/stellaris.cfg | 7 |
4 files changed, 25 insertions, 35 deletions
diff --git a/tcl/mem_helper.tcl b/tcl/mem_helper.tcl new file mode 100644 index 0000000..d811490 --- /dev/null +++ b/tcl/mem_helper.tcl @@ -0,0 +1,22 @@ +# Helper for common memory read/modify/write procedures + +# mrw: "memory read word", returns value of $reg +proc mrw {reg} { + set value "" + ocd_mem2array value 32 $reg 1 + return $value(0) +} + +add_usage_text mrw "address" +add_help_text mrw "Returns value of word in memory." + +# mmw: "memory modify word", updates value of $reg +# $reg <== ((value & ~$clearbits) | $setbits) +proc mmw {reg setbits clearbits} { + set old [mrw $reg] + set new [expr ($old & ~$clearbits) | $setbits] + mww $reg $new +} + +add_usage_text mmw "address setbits clearbits" +add_help_text mmw "Modify word in memory. new_val = (old_val & ~clearbits) | setbits;" diff --git a/tcl/target/c100helper.tcl b/tcl/target/c100helper.tcl index 45adc62..3251066 100644 --- a/tcl/target/c100helper.tcl +++ b/tcl/target/c100helper.tcl @@ -25,13 +25,7 @@ proc helpC100 {} { puts "22) flashUBOOT: will prgram NOR sectors 0-3 with u-boot.bin" } -# mrw,mmw from davinci.cfg -# mrw: "memory read word", returns value of $reg -proc mrw {reg} { - set value "" - mem2array value 32 $reg 1 - return $value(0) -} +source [find mem_helper.tcl] # read a 64-bit register (memory mapped) proc mr64bit {reg} { @@ -50,14 +44,6 @@ proc mw64bit {reg value} { mww [expr $reg+4] $high } -# mmw: "memory modify word", updates value of $reg -# $reg <== ((value & ~$clearbits) | $setbits) -proc mmw {reg setbits clearbits} { - set old [mrw $reg] - set new [expr ($old & ~$clearbits) | $setbits] - mww $reg $new -} - proc showNOR {} { puts "This is the current NOR setup" diff --git a/tcl/target/davinci.cfg b/tcl/target/davinci.cfg index 6e9091e..9e9369d 100644 --- a/tcl/target/davinci.cfg +++ b/tcl/target/davinci.cfg @@ -7,20 +7,7 @@ proc davinci_pinmux {soc reg value} { mww [expr [dict get $soc sysbase] + 4 * $reg] $value } -# mrw: "memory read word", returns value of $reg -proc mrw {reg} { - set value "" - mem2array value 32 $reg 1 - return $value(0) -} - -# mmw: "memory modify word", updates value of $reg -# $reg <== ((value & ~$clearbits) | $setbits) -proc mmw {reg setbits clearbits} { - set old [mrw $reg] - set new [expr ($old & ~$clearbits) | $setbits] - mww $reg $new -} +source [find mem_helper.tcl] # # pll_setup: initialize PLL diff --git a/tcl/target/stellaris.cfg b/tcl/target/stellaris.cfg index 6ba5f14..b663ce3 100644 --- a/tcl/target/stellaris.cfg +++ b/tcl/target/stellaris.cfg @@ -46,12 +46,7 @@ $_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE # this, if you're using a slower clock. adapter_khz 500 -# mrw: "memory read word", returns value of $reg -proc mrw {reg} { - set value "" - mem2array value 32 $reg 1 - return $value(0) -} +source [find mem_helper.tcl] $_TARGETNAME configure -event reset-start { adapter_khz 500 |