- set result [format "$result#%d: %s at 0x%08x, size 0x%08x, buswidth %d, chipwidth %d" $i $a(name) $a(base) $a(size) $a(bus_width) $a(chip_width)]
- set i [expr $i+1]
- }
- return $result
-}
-
-# We need to explicitly redirect this to the OpenOCD command
-# as Tcl defines the exit proc
-proc exit {} {
- openocd_throw exit
-}
-
-#Print help text for a command. Word wrap
-#help text that is too wide inside column.
-proc help {args} {
- global ocd_helptext
- set cmd $args
- foreach a [lsort $ocd_helptext] {
- if {[string length $cmd]==0||[string first $cmd $a]!=-1||[string first $cmd [lindex $a 1]]!=-1} {
- set w 50
- set cmdname [lindex $a 0]
- set h [lindex $a 1]
- set n 0
- while 1 {
- if {$n > [string length $h]} {break}
-
- set next_a [expr $n+$w]
- if {[string length $h]>$n+$w} {
- set xxxx [string range $h $n [expr $n+$w]]
- for {set lastpos [expr [string length $xxxx]-1]} {$lastpos>=0&&[string compare [string range $xxxx $lastpos $lastpos] " "]!=0} {set lastpos [expr $lastpos-1]} {
- }
- #set next_a -1
- if {$lastpos!=-1} {
- set next_a [expr $lastpos+$n+1]
- }
- }
-
-
- puts [format "%-25s %s" $cmdname [string range $h $n [expr $next_a-1]] ]
- set cmdname ""
- set n [expr $next_a]
- }
- }
- }
-}
-
-add_help_text help "Tcl implementation of help command"
-
-
-#a bit of backwards compatibility
-proc openocd_throw {cmd} {
- set openocd_output ""
- eval $cmd
- return $openocd_output
-}
-
-#a bit of backwards compatibility
-proc openocd {cmd} {
- set openocd_output ""
- eval $cmd
- return $openocd_output
-}
-
-# If a fn is unknown to Tcl, we try to execute it as an OpenOCD command
-#
-# We also support two level commands. "flash banks" is translated to
-# flash_banks
-proc unknown {args} {
- # do the name mangling from "flash banks" to "flash_banks"
- if {[llength $args]>=2} {
- set cmd_name "[lindex $args 0]_[lindex $args 1]"
- # Fix?? add a check here if this is a command?
- # we'll strip away args until we fail anyway...
- return [eval "$cmd_name [lrange $args 2 end]"]
- }
- # This really is an unknown command.
- puts "Unknown command: $args"
-}
-
-
-proc target_script {target_num eventname scriptname} {
- if {[string compare $eventname reset]==0} {
- set eventname post_reset
- }
-
- # This is the script we invoke
- proc "target_[set eventname]_[set target_num]" {} "script $scriptname"
-
+ } else {if {$type == "group"} {
+ catch {eval ocd_usage $name $args}
+ set errmsg [format "%s: command requires more arguments" \
+ [concat $name " " $args]]
+ } else {
+ set errmsg [format "invalid subcommand \"%s\"" $args]
+ }}}
+ return -code $errcode $errmsg