Committed improved error messages.
Try now.
--
Øyvind Harboe
http://www.zylin.com/zy1000.html
ARM7 ARM9 XScale Cortex
JTAG debugger and flash programmer
Index: C:/workspace/trunk/src/helper/command.c
===================================================================
--- C:/workspace/trunk/src/helper/command.c (revision 809)
+++ C:/workspace/trunk/src/helper/command.c (working copy)
@@ -100,6 +100,8 @@
}
/* accumulate help text in Tcl helptext list. */
Jim_Obj *helptext=Jim_GetGlobalVariableStr(interp, "ocd_helptext",
JIM_ERRMSG);
+ if (Jim_IsShared(helptext))
+ helptext = Jim_DuplicateObj(interp, helptext);
Jim_Obj *cmd_entry=Jim_NewListObj(interp, NULL, 0);
Jim_Obj *cmd_list=Jim_NewListObj(interp, NULL, 0);
Index: C:/workspace/trunk/src/openocd.c
===================================================================
--- C:/workspace/trunk/src/openocd.c (revision 809)
+++ C:/workspace/trunk/src/openocd.c (working copy)
@@ -734,6 +734,9 @@
/* FIX!!! it would be prettier to invoke add_help_text...
accumulate help text in Tcl helptext list. */
Jim_Obj *helptext=Jim_GetGlobalVariableStr(interp, "ocd_helptext",
JIM_ERRMSG);
+ if (Jim_IsShared(helptext))
+ helptext = Jim_DuplicateObj(interp, helptext);
+
Jim_Obj *cmd_entry=Jim_NewListObj(interp, NULL, 0);
Jim_Obj *cmd_list=Jim_NewListObj(interp, NULL, 0);
Index: C:/workspace/trunk/src/startup.tcl
===================================================================
--- C:/workspace/trunk/src/startup.tcl (revision 809)
+++ C:/workspace/trunk/src/startup.tcl (working copy)
@@ -11,7 +11,6 @@
# Commands can be more than one word and they are stored
# as "flash banks" "help text x x x"
-global ocd_helptext
set ocd_helptext {}
proc add_help_text {cmd cmd_help} {
@@ -123,3 +122,18 @@
# the command twice.
return ""
}
+
+
+proc target_script {target_num eventname scriptname} {
+ if {[string compare $eventname reset]==0} {
+ set eventname post_reset
+ }
+
+ # This is the script we invoke
+ proc "target_[set eventname]_[set target_num]" {} "script $scriptname"
+
+}
+
+#add_help_text target_script "xxx"
+add_help_text target_script "<target#>
<event=reset/pre_reset/post_halt/pre_resume/gdb_program_config> <script_file>"
+
Index: C:/workspace/trunk/src/target/target.c
===================================================================
--- C:/workspace/trunk/src/target/target.c (revision 809)
+++ C:/workspace/trunk/src/target/target.c (working copy)
@@ -52,7 +52,6 @@
int handle_target_command(struct command_context_s *cmd_ctx, char *cmd, char
**args, int argc);
int handle_targets_command(struct command_context_s *cmd_ctx, char *cmd, char
**args, int argc);
-int handle_target_script_command(struct command_context_s *cmd_ctx, char *cmd,
char **args, int argc);
int handle_run_and_halt_time_command(struct command_context_s *cmd_ctx, char
*cmd, char **args, int argc);
int handle_working_area_command(struct command_context_s *cmd_ctx, char *cmd,
char **args, int argc);
@@ -952,8 +951,6 @@
{
register_command(cmd_ctx, NULL, "target", handle_target_command,
COMMAND_CONFIG, "target <cpu> [reset_init default - DEPRECATED] <chainpos>
<endianness> <variant> [cpu type specifc args]");
register_command(cmd_ctx, NULL, "targets", handle_targets_command,
COMMAND_EXEC, NULL);
- register_command(cmd_ctx, NULL, "target_script",
handle_target_script_command, COMMAND_CONFIG,
- "target_script <target#>
<event=reset/pre_reset/post_halt/pre_resume/gdb_program_config> <script_file>");
register_command(cmd_ctx, NULL, "run_and_halt_time",
handle_run_and_halt_time_command, COMMAND_CONFIG, "<target> <run time ms>");
register_command(cmd_ctx, NULL, "working_area",
handle_working_area_command, COMMAND_ANY, "working_area <target#> <address>
<size> <'backup'|'nobackup'> [virtual address]");
register_command(cmd_ctx, NULL, "virt2phys", handle_virt2phys_command,
COMMAND_ANY, "virt2phys <virtual address>");
@@ -1491,42 +1488,6 @@
name, get_num_by_target(target));
}
-int handle_target_script_command(struct command_context_s *cmd_ctx, char *cmd,
char **args, int argc)
-{
- target_t *target = NULL;
-
- if (argc < 3)
- {
- LOG_ERROR("incomplete target_script command");
- return ERROR_COMMAND_SYNTAX_ERROR;
- }
-
- target = get_target_by_num(strtoul(args[0], NULL, 0));
-
- if (!target)
- {
- return ERROR_COMMAND_SYNTAX_ERROR;
- }
-
- const char *event=args[1];
- if (strcmp("reset", event)==0)
- {
- /* synonymous */
- event="post_reset";
- }
-
- /* Define a tcl procedure which we'll invoke upon some event */
- command_run_linef(cmd_ctx,
- "proc target_%s_%d {} {"
- "openocd {script %s} ; return \"\""
- "}",
- event,
- get_num_by_target(target),
- args[2]);
-
- return ERROR_OK;
-}
-
int handle_run_and_halt_time_command(struct command_context_s *cmd_ctx, char
*cmd, char **args, int argc)
{
target_t *target = NULL;
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development