openocd.texi: document Tcl RPC and add an example client
This should provide enough information to start using OpenOCD RPC. I've seen some other example clients in different languages but I can't find them anymore, and their legal status was unclear. Change-Id: I3a95fe361d773040d1e52a62f9cc0cc655019a9f Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/1915 Tested-by: jenkins Reviewed-by: Andreas Ortmann <ortmann@finf.uni-hannover.de> Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
This commit is contained in:
committed by
Spencer Oliver
parent
ae806d8f4e
commit
7462179c38
@@ -8429,7 +8429,7 @@ should be passed in to the proc in question.
|
||||
By "low-level," we mean commands that a human would typically not
|
||||
invoke directly.
|
||||
|
||||
Low-level commands are (should be) prefixed with "ocd_"; e.g.
|
||||
Some low-level commands need to be prefixed with "ocd_"; e.g.
|
||||
@command{ocd_flash_banks}
|
||||
is the low-level API upon which @command{flash banks} is implemented.
|
||||
|
||||
@@ -8443,6 +8443,16 @@ Convert a Tcl array to memory locations and write the values
|
||||
@item @b{ocd_flash_banks} <@var{driver}> <@var{base}> <@var{size}> <@var{chip_width}> <@var{bus_width}> <@var{target}> [@option{driver options} ...]
|
||||
|
||||
Return information about the flash banks
|
||||
|
||||
@item @b{capture} <@var{command}>
|
||||
|
||||
Run <@var{command}> and return full log output that was produced during
|
||||
its execution. Example:
|
||||
|
||||
@example
|
||||
> capture "reset init"
|
||||
@end example
|
||||
|
||||
@end itemize
|
||||
|
||||
OpenOCD commands can consist of two words, e.g. "flash banks". The
|
||||
@@ -8477,6 +8487,24 @@ We should add support for a variable like Tcl variable
|
||||
is jim, not real tcl).
|
||||
@end quotation
|
||||
|
||||
@section Tcl RPC server
|
||||
@cindex RPC
|
||||
|
||||
OpenOCD provides a simple RPC server that allows to run arbitrary Tcl
|
||||
commands and receive the results.
|
||||
|
||||
To access it, your application needs to connect to a configured TCP port
|
||||
(see @command{tcl_port}). Then it can pass any string to the
|
||||
interpreter terminating it with @code{0x1a} and wait for the return
|
||||
value (it will be terminated with @code{0x1a} as well). This can be
|
||||
repeated as many times as desired without reopening the connection.
|
||||
|
||||
Remember that most of the OpenOCD commands need to be prefixed with
|
||||
@code{ocd_} to get the results back. Sometimes you might also need the
|
||||
@command{capture} command.
|
||||
|
||||
See @file{contrib/rpc_examples/} for specific client implementations.
|
||||
|
||||
@node FAQ
|
||||
@chapter FAQ
|
||||
@cindex faq
|
||||
|
||||
Reference in New Issue
Block a user