Move TCL script files -- Step 2 of 2:
- Move src/tcl to tcl/. - Update top Makefile.am to use new path name. git-svn-id: svn://svn.berlios.de/openocd/trunk@1919 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
72
tcl/mmr_helpers.tcl
Normal file
72
tcl/mmr_helpers.tcl
Normal file
@@ -0,0 +1,72 @@
|
||||
|
||||
proc proc_exists { NAME } {
|
||||
set n [info commands $NAME]
|
||||
set l [string length $n]
|
||||
return [expr $l != 0]
|
||||
}
|
||||
|
||||
# Give: REGISTER name - must be a global variable.
|
||||
proc show_mmr32_reg { NAME } {
|
||||
|
||||
global $NAME
|
||||
# we want $($NAME)
|
||||
set a [set [set NAME]]
|
||||
|
||||
if ![catch { set v [memread32 $a] } msg ] {
|
||||
puts [format "%15s: (0x%08x): 0x%08x" $NAME $a $v]
|
||||
|
||||
# Was a helper defined?
|
||||
set fn show_${NAME}_helper
|
||||
if [ proc_exists $fn ] {
|
||||
# Then call it
|
||||
$fn $NAME $a $v
|
||||
}
|
||||
return $v;
|
||||
} else {
|
||||
error [format "%s (%s)" $msg $NAME ]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Give: NAMES - an array of names accessable
|
||||
# in the callers symbol-scope.
|
||||
# VAL - the bits to display.
|
||||
|
||||
proc show_mmr32_bits { NAMES VAL } {
|
||||
|
||||
upvar $NAMES MYNAMES
|
||||
|
||||
set w 5
|
||||
foreach {IDX N} $MYNAMES {
|
||||
set l [string length $N]
|
||||
if { $l > $w } { set w $l }
|
||||
}
|
||||
|
||||
for { set x 24 } { $x >= 0 } { incr x -8 } {
|
||||
puts -nonewline " "
|
||||
for { set y 7 } { $y >= 0 } { incr y -1 } {
|
||||
set s $MYNAMES([expr $x + $y])
|
||||
puts -nonewline [format "%2d: %-*s | " [expr $x + $y] $w $s ]
|
||||
}
|
||||
puts ""
|
||||
|
||||
puts -nonewline " "
|
||||
for { set y 7 } { $y >= 0 } { incr y -1 } {
|
||||
puts -nonewline [format " %d%*s | " [expr !!($VAL & (1 << ($x + $y)))] [expr $w -1] ""]
|
||||
}
|
||||
puts ""
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
proc show_mmr_bitfield { MSB LSB VAL FIELDNAME FIELDVALUES } {
|
||||
set width [expr (($MSB - $LSB + 1) + 7) / 4]
|
||||
set nval [show_normalize_bitfield $VAL $MSB $LSB ]
|
||||
set name0 [lindex $FIELDVALUES 0 ]
|
||||
if [ string compare $name0 _NUMBER_ ] {
|
||||
set sval [lindex $FIELDVALUES $nval]
|
||||
} else {
|
||||
set sval ""
|
||||
}
|
||||
puts [format "%-15s: %d (0x%0*x) %s" $FIELDNAME $nval $width $nval $sval ]
|
||||
}
|
||||
Reference in New Issue
Block a user