Committed. Added telnet_async command to enable/disable asynchronous messages.
By default they are disabled, which speeds up debugging while telnet is open. -- Øyvind Harboe http://www.zylin.com/zy1000.html ARM7 ARM9 XScale Cortex JTAG debugger and flash programmer
### Eclipse Workspace Patch 1.0 #P openocd Index: src/helper/command.h =================================================================== --- src/helper/command.h (revision 1042) +++ src/helper/command.h (working copy) @@ -38,16 +38,16 @@ struct command_s *commands; int current_target; /* Execute a command. - * + * * If the command fails, it *MUST* return a value != ERROR_OK * (many commands break this rule, patches welcome!) - * + * * This is *especially* important for commands such as writing * to flash or verifying memory. The reason is that those commands * can be used by programs to determine if the operation succeded * or not. If the operation failed, then a program can try * an alternative approach. - * + * * Returning ERROR_COMMAND_SYNTAX_ERROR will have the effect of * printing out the syntax of the command. */ @@ -101,4 +101,6 @@ void register_jim(command_context_t *context, const char *name, int (*cmd)(Jim_Interp *interp, int argc, Jim_Obj *const *argv), const char *help); +long jim_global_long(const char *variable); + #endif /* COMMAND_H */ Index: src/helper/startup.tcl =================================================================== --- src/helper/startup.tcl (revision 1107) +++ src/helper/startup.tcl (working copy) @@ -300,3 +300,19 @@ } add_help_text verify "synonym to verify_image" + + +add_help_text telnet_async "<enable/disable> - enable/disable async messages. Default 0." + +global telnet_async_state +set telnet_async_state 0 +proc telnet_async {state} { + global telnet_async_state + if {[string compare $state enable]==0} { + set telnet_async_state 1 + } elseif {[string compare $state disable]==0} { + set telnet_async_state 0 + } else { + return -code error "Illegal option $state" + } +} \ No newline at end of file Index: src/server/telnet_server.c =================================================================== --- src/server/telnet_server.c (revision 1087) +++ src/server/telnet_server.c (working copy) @@ -48,6 +48,11 @@ int handle_exit_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); int handle_telnet_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int telnet_async() +{ + return jim_global_long("telnet_async_state"); +} + static char *negotiate = "\xFF\xFB\x03" /* IAC WILL Suppress Go Ahead */ "\xFF\xFB\x01" /* IAC WILL Echo */ @@ -186,7 +191,8 @@ telnet_connection->next_history = 0; telnet_connection->current_history = 0; - log_add_callback(telnet_log_callback, connection); + if (telnet_async()) + log_add_callback(telnet_log_callback, connection); @@ -341,7 +347,15 @@ t_con->line_size = 0; t_con->line_cursor = -1; /* to supress prompt in log callback during command execution */ + + if (!telnet_async()) + log_add_callback(telnet_log_callback, connection); + retval = command_run_line(command_context, t_con->line); + + if (!telnet_async()) + log_remove_callback(telnet_log_callback, connection); + t_con->line_cursor = 0; if (retval == ERROR_COMMAND_CLOSE_CONNECTION) Index: src/helper/command.c =================================================================== --- src/helper/command.c (revision 1076) +++ src/helper/command.c (working copy) @@ -795,3 +795,16 @@ Jim_ListAppendElement(interp, cmd_entry, Jim_NewStringObj(interp, help, -1)); Jim_ListAppendElement(interp, helptext, cmd_entry); } + + +/* return global variable long value or 0 upon failure */ +long jim_global_long(const char *variable) +{ + Jim_Obj *objPtr=Jim_GetGlobalVariableStr(interp, variable, JIM_ERRMSG); + long t; + if (Jim_GetLong(interp, objPtr, &t)==JIM_OK) + { + return t; + } + return 0; +} Index: doc/openocd.texi =================================================================== --- doc/openocd.texi (revision 1116) +++ doc/openocd.texi (working copy) @@ -265,6 +265,10 @@ @item @b{telnet_port} <@var{number}> @cindex telnet_port @*Port on which to listen for incoming telnet connections [EMAIL PROTECTED] @b{telnet_async} <@var{enable/disable}> [EMAIL PROTECTED] telnet_async [EMAIL PROTECTED]/disable asynchronous messages. Default off. Slows down debugging +if enabled and telnet session is open while stepping. @item @b{tcl_port} <@var{number}> @cindex tcl_port @*Port on which to listen for incoming TCL syntax. This port is intended as
_______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development