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.

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)