Add ioutil_stubs.c to provide an empty ioutil_init() routine.
Add ioutil.h to prevent applications from needing to declare it.
Allows unconditionally calling that function during startup, and the
resulting libocdhelper library API is now more stable.
Prints a DEBUG message when the stub implementation is included.
In embedded hosts, the Jim interpreter can come from the
existing context rather than be created by OpenOCD.
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
There is no particular reason to invoke jtag_interface_quit()
on the atexit() handler, it just makes the code more obtuse
and stops other legitimate usage of atexit().
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Adds 'noinit' command to prevent OpenOCD from running 'init' at the end
up startup, allowing it to be given from telnet or TCL. This provides
the old behavior by default, and users can add this command to their
scripts to get the new behavior.
Moves the telnet and TCL server startup to server_init(), moving their
respective command registration in to server_register_commands().
Adds proper error checking for these particular startup processes.
Moves the core server startup to openocd_main(), improving related error
checking and preparing to defer 'init'.
Rework gdb_init to create flexible APIs (gdb_target_add_{one,all}) and
static helper (gdb_target_start) for starting GDB services. Eliminates
duplicated code and provides general mechanisms for adding GDB services.
The 'init' command is updated to call the new API, and later patches can
decouple its policy of adding all targets therein.
Provides the new capability to use both piped and TCP servers when
multiple targets are defined. The first target fills the pipe, and
others will be started on TCP ports (unless disabled, i.e. gdb_port=0).
Code other than main() may invoke "init". When it does so,
customized handlers may need to run ... so make sure the
command context state is updated before they do so.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Removes redundant assignment of start_ms from log_register_commands().
Eliminates command_context parameter and return value.
Adds Doxygen comment block for this API call.
Removes hello and foo commands from top-level registration. Instead,
the dummy interface driver and faux flash driver have been augmented
to register these commands as sub-commands.
Updates httpd_start() to use register_commands() for 'readform' and
'writeform' commands. Adds server/httpd.h to export the new signatures
for this function (and httpd_stop), which allows removing the obsoleted
declarations inside openocd.c.
Refactors the command registration to use helpers to simplify the code.
The unregistration routines were made more flexible by allowing them
to operate on a single command, such that one can remove all of a
commands children in one step (perhaps before adding back a 'config'
subcommand that allows getting the others back). Eliminates a bit
of duplicated code and adds full API documentation for these routines.
Don't include "target.h" from more headers than necessary. This
avoids needless interdependencies and duplicated include paths.
Don't needlessly include it in source files, either.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Lots of files still include it, often through needless
duplicate inclusion of "log.h"; sigh.
This cleans up the inclusion graph a bunch, so there are
fewer inclusion paths, but it doesn't change much otherwise.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
It's completely unused; the obnoxious "DANGER!!!" comments
don't even explain what it was doing (shorthand SVN magic).
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
The hello module provides the 'hello' command, printing a greetings
to the command console. It can grow to serve as pedagogical example
of services that OpenOCD developers should use: a runnable style guide.
Also, talk about "mainline" not "trunk".
The release.txt and release.sh files need more updates.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2825 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- The guess-rev.sh script is now a tweaked version of "setlocalversion" as
seen in Linux, U-Boot, and various other projects. When it finds source
control support (git, hg, svn) it uses IDs from there. Else (specific
to this project) it reports itself as "-snapshot", e.g. from gitweb.
I verified this new "guess-rev.sh" script runs under Cygwin.
- Also update the generic version strings to be like "0.3.0-dev" (during
development) instead of the very long "0.3.0-in-development". These also
show up in the PDF docs. For better tracking, we might eventually change
these strings to include the version IDs too.
- Change the startup banner version strings so they include the guess-rev
output. Development and release versions with GIT will be like
Open On-Chip Debugger 0.3.0-dev-00282-g7191a4f-dirty (2009-10-05-20:57)
Open On-Chip Debugger 0.3.0 (2009-10-05-20:57)
instead of the previous SVN-specific (even when using git-svn!)
Open On-Chip Debugger 0.3.0-in-development (2009-10-05-01:39) svn:exported
Open On-Chip Debugger 0.3.0 (2009-10-05-01:39) Release
git-svn-id: svn://svn.berlios.de/openocd/trunk@2809 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- Move repository URL output associate it with the version; they relate.
- 'openocd --version' output now appears much more terse, as expected.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2421 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- Add jtag_interface_quit, factored from exit_handler() in openocd.c.
- Remove its extern declaration.
- Add static keyword to its definition.
git-svn-id: svn://svn.berlios.de/openocd/trunk@1952 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Remove superfluous #include directives.
* Fix warnings and API usage to cure its bit rot.
* Build into libhelper library (for now).
Add tclapi.h to export tclapi_register_commands().
Register tclapi commands in openocd.c:setup_command_handler().
git-svn-id: svn://svn.berlios.de/openocd/trunk@1691 b42882b7-edfa-0310-969c-e2dbd0fdcd60
associated with the interp structure being passed around
And fixed the message referring to mem2array in the array2mem function
git-svn-id: svn://svn.berlios.de/openocd/trunk@821 b42882b7-edfa-0310-969c-e2dbd0fdcd60
There isn't a real value to the cfg_cmd_ctx since everything should be run thru the initial context created at start.
git-svn-id: svn://svn.berlios.de/openocd/trunk@819 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This patch just uses the command.c interface to create tcl commands for the root level commands and avoids a bit of the "TCL" bleed into the rest of the openocd code.
Multilevel commands also supported.
git-svn-id: svn://svn.berlios.de/openocd/trunk@818 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This evaluates the file at the correct level for the interpreter and the
sets and all the globals are then done as expected.
added a const to find_file function to avoid typecasting
git-svn-id: svn://svn.berlios.de/openocd/trunk@806 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- make sure bin2char is built before openocd
- add generated startup_tcl.c to clean list
- pass startup_tcl directly to Jim_Eval
git-svn-id: svn://svn.berlios.de/openocd/trunk@805 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- drscan is now a low level tcl command:
execute DR scan <device> <num_bits> <value> <num_bits1> <value2>
- removed obsolete partial command text support
git-svn-id: svn://svn.berlios.de/openocd/trunk@791 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Add semantics to support memwrite(32,16,8) with an array2mem command
Move the global up in bits2bytes.tcl so the set puts the value in the global
context.
Add memwrite procs to memory.tcl
git-svn-id: svn://svn.berlios.de/openocd/trunk@786 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- fixed build warnings for last commit
- set svn props for last commit
git-svn-id: svn://svn.berlios.de/openocd/trunk@760 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- Log output handlers now get a "const char *line"
- Added "const" to parameter.
src/helper/command.c
src/helper/command.h
- New function: 'command_output_text()'
- Log output handlers now get a "const char *line"
src/helper/options.c
- Log output handlers now get a "const char *line"
src/server/telnet_server.c
- DO not transmit NULL bytes via TELNET.
- Log output handlers now get a "const char *line"
src/server/gdb_server.c
- Log output handlers now get a "const char *line"
*** THIS INCLUDES PORTIONS OF A PATCH FROM Oyvind sent
previously to the mailing list for TCL users try
src/target/target.c
*** THIS INCLUDES PORTIONS OF A PATCH FROM Oyvind sent
previously to the mailing list for TCL users try
src/target/target.h
*** THIS INCLUDES PORTIONS OF A PATCH FROM Oyvind sent
previously to the mailing list for TCL users try
src/openocd.c
- **MAJOR** Work: New TCL/Jim function: mem2array
- **MAJOR** Work: Redirect Tcl/Jim stdio output to remote users.
- Previously: TCL output did not go to GDB.
- Previously: TCL output did not go to TELNET
- Previously: TCL output only goes to control console.
- This fixes that problem.
+ Created callbacks:
+openocd_jim_fwrite()
+openocd_jim_fread()
+openocd_jim_vfprintf()
+openocd_jim_fflush()
+openocd_jim_fgets()
src/Makefile.am
- New TCL files.
- Future note: This should be more automated. As the list of
'tcl' files grows maintaning this list will suck.
src/Jim.c
- ** THIS INCLUDES A PREVIOUS PATCH I SENT EARLIER **
- that impliments many [format] specifies JIM did not support.
- Jim_FormatString() - **MAJOR** work.
- Previously only supported "%s" "%d" and "%c"
- And what support existed had bugs.
- NEW: *MANY* formating parameters are now supported.
- TODO: The "precision" specifier is not supported.
** NEW ** This patch.
- Jim_StringToWide() test if no conversion occured.
- Jim_StringToIndex() test if no conversion occured.
- Jim_StringToDouble() test if no conversion occured.
** NEW ** This Patch. Major Work.
- Previously output from JIM did not get sent to GDB
- Ditto: Output to Telnet session.
- Above items are now fixed - By introducing callbacks
new function pointers in the "interp" structure.
- Helpers that call the callbacks.
- New function: Jim_fprintf()
- New function: Jim_vfprintf()
- New function: Jim_fwrite()
- New function: Jim_fread()
- New function: Jim_fflush()
- New function: Jim_fgets()
By default: the output is to STDIO as previous.
The "openocd.c" - redirects the output as needed.
- Jim_Panic() - Send panic to both STDERR and the interps
specified STDERR output as a 2nd choice.
- Now JIM's "stdin/stdout/stderr" paramters are "void *"
and are no longer "FILE *".
src/Jim.h
- **MAJOR**
- New JIM STDIO callbacks in the "interp" structure.
- change: "stdin/stdout/stderr" are now "void *" cookies.
- New JIM stdio helper functions.
git-svn-id: svn://svn.berlios.de/openocd/trunk@755 b42882b7-edfa-0310-969c-e2dbd0fdcd60