- configure check added for tclsh
[fw/openocd] / src / scripting.txt
index fa7b94c3fc9bd58acf2b3f86cf844ec72eebeb02..ae917666c17ab501e74fa0fb65a95db9843ca4fc 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,41 @@ 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.
+  
+  
+External scripting
+==================
+The embedded Jim Tcl interpreter in OpenOCD is very limited
+compared to any full scale PC hosted scripting language.
+
+The goal is to keep the internal Jim Tcl interpreter as
+small as possible and allow any advanced scripting,
+especially scripting that interacts with the host,
+run on the host and talk to OpenOCD via the TCP/IP
+scripting connection.
+
+Another problem with Jim Tcl is that there is no debugger
+for it.
+
+With a bit of trickery it should be possible to run Jim
+Tcl scripts under a Tcl interpreter on a PC. The advantage
+would be that the Jim Tcl scripts could be debugged using
+a standard PC Tcl debugger.
+
+The rough idea is to write an unknown proc that sends
+unknown commands to OpenOCD.
+
+Basically a PC version of startup.tcl. Patches most
+gratefully accepted! :-)