]> git.gag.com Git - fw/openocd/commitdiff
very slight cleanup of flash banks handling.
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Thu, 10 Jul 2008 06:44:11 +0000 (06:44 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Thu, 10 Jul 2008 06:44:11 +0000 (06:44 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@782 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/scripting.txt
src/tcl/commands.tcl

index fa7b94c3fc9bd58acf2b3f86cf844ec72eebeb02..059bc85ad01a9b7d7d083d439b5b00aadac38dbe 100644 (file)
@@ -1,15 +1,5 @@
 Plan for hosted scripting support in OpenOCD
 ============================================
-Jim Tcl support in OpenOCD currently exists as a patch.
-
-There has been some discussion on the list as to what
-purpose scripting support might serve in OpenOCD.
-
-Also Lua was proposed as a scripting language, but 
-only Jim Tcl has been forwarded as a patch.
-
-Tcl is also backwards syntax compatible with OpenOCD 
-commands.
 
 What scripting will not do
 ==========================
@@ -26,6 +16,10 @@ Since end users are not expected to mess with the scripting
 language, the choice of language is not terribly important
 to those same end users.
 
+Jim Tcl was chosen as it was easy to integrate, works
+great in an embedded environment and Ã˜yvind Harboe
+had experience with it.
+
 Uses of scripting
 =================
 Default implementation of procedures in tcl/procedures.tcl.
@@ -46,3 +40,15 @@ Default implementation of procedures in tcl/procedures.tcl.
   and will have no externally visible consequences.
   Tcl has an advantage in that it's syntax is backwards
   compatible with the current OpenOCD syntax.
+- external scripting. Low level tcl functions will be defined
+  that return machine readable output. These low level tcl
+  functions constitute the tcl api. flash_banks is such
+  a low level tcl proc. "flash banks" is an example of
+  a command that has human readable output. The human 
+  readable output is expected to change inbetween versions
+  of OpenOCD. The output from flash_banks may not be
+  in the preferred form for the client. The client then
+  has two choices a) parse the output from flash_banks
+  or b) write a small piece of tcl to output the
+  flash_banks output to a more suitable form. The latter may
+  be simpler.
\ No newline at end of file
index a25badcc8151f673aa786e3cc452840b34fd6980..1da8f1b2a029e0fb772dd511974a5dee93bcf04f 100644 (file)
@@ -34,25 +34,22 @@ proc exit {} {
        openocd_throw exit
 }
 
-# If a fn is unknown to Tcl, we try to execute it as an OpenOCD command
-proc unknown {args} {
-
-       # This is uglier than it needs to be since the "flash banks" is really
-       # a single command. For now only "flash banks" has been converted from
-       # C to Tcl as an example, but if we do decide to go down this path, then
-       # some more generic scheme will be put in place here.
-       #
-       # Help texts need a makeover. There needs to be help texts for
-       # tcl procs + perhaps some work w.r.t. making the help command
-       # format things prettier.
-       if {[string compare [lindex $args 0] flash]==0 && [string compare [lindex $args 1] banks]==0} {
+# We have currently converted only "flash banks" to tcl.
+proc flash args {
+       if {[string compare [lindex $args 0] banks]==0} {
                return [flash_banks_pretty]
-       }  
+       }
+       openocd_throw "flash $args"
+}
 
-       # We print out as we run the command
+# If a fn is unknown to Tcl, we try to execute it as an OpenOCD command
+proc unknown {args} {
        if {[string length $args]>0} {
-               openocd_throw "$args"
+               openocd_throw $args
        }
+       # openocd_throw outputs while running and also sets the
+       # primary return value to the output of the command
+       #
        # The primary return value have been set by "openocd" above,
        # so we need to clear it, lest we print out the output from
        # the command twice.