Next: FAQ, Previous: GDB and OpenOCD, Up: Top [Contents][Index]
The commands are stateless. E.g. the telnet command line has a concept of currently active target, the Tcl API proc’s take this sort of state information as an argument to each proc.
There are three main types of return values: single value, name value pair list and lists.
Name value pair. The proc ’foo’ below returns a name/value pair list.
> set foo(me) Duane > set foo(you) Oyvind > set foo(mouse) Micky > set foo(duck) Donald If one does this: > set foo The result is: me Duane you Oyvind mouse Micky duck Donald Thus, to get the names of the associative array is easy: foreach { name value } [set foo] { puts "Name: $name, Value: $value" }
Lists returned must be relatively small. Otherwise a range should be passed in to the proc in question.
By low-level, the intent is a human would not directly use these commands.
Low-level commands are (should be) prefixed with "ocd_", e.g.
ocd_flash_banks
is the low level API upon which flash banks
is implemented.
Read memory and return as a Tcl array for script processing
Convert a Tcl array to memory locations and write the values
Return information about the flash banks
OpenOCD commands can consist of two words, e.g. "flash banks". The startup.tcl "unknown" proc will translate this into a Tcl proc called "flash_banks".
Real Tcl has ::tcl_platform(), and platform::identify, and many other variables. JimTCL, as implemented in OpenOCD creates $ocd_HOSTOS which holds one of the following values:
Note: ’winxx’ was choosen because today (March-2009) no distinction is made between Win32 and Win64.
Note: We should add support for a variable like Tcl variable
tcl_platform(platform)
, it should be calledjim_platform
(because it is jim, not real tcl).
Next: FAQ, Previous: GDB and OpenOCD, Up: Top [Contents][Index]