@section Target configuration
@itemize @bullet
-@item @b{target} <@var{type}> <@var{endianess}> <@var{reset_mode}> <@var{JTAG pos}>
+@item @b{target} <@var{type}> <@var{endianess}> <@var{JTAG pos}>
<@var{variant}>
@cindex target
Defines a target that should be debugged. Currently supported types are:
Endianess may be @option{little} or @option{big}.
-The reset_mode specifies what should happen to the target when a reset occurs:
-@itemize @minus
-@item @b{reset_halt}
-@cindex reset_halt
-Immediately request a target halt after reset. This allows targets to be debugged
-from the very first instruction. This is only possible with targets and JTAG
-interfaces that correctly implement the reset signals.
-@item @b{reset_init}
-@cindex reset_init
-Similar to @option{reset_halt}, but executes the script file defined to handle the
-'reset' event for the target. Like @option{reset_halt} this only works with
-correct reset implementations.
-@item @b{reset_run}
-@cindex reset_run
-Simply let the target run after a reset.
-@item @b{run_and_halt}
-@cindex run_and_halt
-Let the target run for some time (default: 1s), and then request halt.
-@item @b{run_and_init}
-@cindex run_and_init
-A combination of @option{reset_init} and @option{run_and_halt}. The target is allowed
-to run for some time, then halted, and the @option{reset} event script is executed.
-@end itemize
On JTAG interfaces / targets where system reset and test-logic reset can't be driven
completely independent (like the LPC2000 series), or where the JTAG interface is
@subsection arm7tdmi options
@cindex arm7tdmi options
-target arm7tdmi <@var{endianess}> <@var{reset_mode}> <@var{jtag#}>
+target arm7tdmi <@var{endianess}> <@var{jtag#}>
The arm7tdmi target definition requires at least one additional argument, specifying
the position of the target in the JTAG daisy-chain. The first JTAG device is number 0.
The optional [@var{variant}] parameter has been removed in recent versions.
@cindex step
Single-step the target at its current code position, or at an optional address.
+
@item @b{reset} [@option{run}|@option{halt}|@option{init}|@option{run_and_halt}
|@option{run_and_init}]
@cindex reset
Perform a hard-reset. The optional parameter specifies what should happen after the reset.
This optional parameter overrides the setting specified in the configuration file,
making the new behaviour the default for the @option{reset} command.
+
+With no arguments a "reset run" is executed
@itemize @minus
@item @b{run}
@cindex reset run
if ((retval = jtag_init_reset(cmd_ctx)) != ERROR_OK)
return retval;
+ keep_alive(); /* we might be running on a very slow JTAG clk */
+
/* First time this is executed after launching OpenOCD, it will read out
* the type of CPU, etc. and init Embedded ICE registers in host
* memory.
if ((retval = target_examine(cmd_ctx)) != ERROR_OK)
return retval;
+ keep_alive(); /* we might be running on a very slow JTAG clk */
+
/* prepare reset_halt where necessary */
target = targets;
while (target)
register_command(cmd_ctx, NULL, "virt2phys", handle_virt2phys_command, COMMAND_ANY, "virt2phys <virtual address>");
register_command(cmd_ctx, NULL, "profile", handle_profile_command, COMMAND_EXEC, "PRELIMINARY! - profile <seconds> <gmon.out>");
+
/* script procedures */
register_jim(cmd_ctx, "openocd_mem2array", jim_mem2array, "read memory and return as a TCL array for script processing");
register_jim(cmd_ctx, "openocd_array2mem", jim_array2mem, "convert a TCL array to memory locations and write the values");
return ERROR_COMMAND_SYNTAX_ERROR;
}
- /* what to do on a target reset */
- (*last_target_p)->reset_mode = RESET_INIT; /* default */
if (strcmp(args[2], "reset_halt") == 0)
- (*last_target_p)->reset_mode = RESET_HALT;
+ {
+ LOG_WARNING("reset_mode argument is deprecated. reset_mode = reset_run");
+ }
else if (strcmp(args[2], "reset_run") == 0)
- (*last_target_p)->reset_mode = RESET_RUN;
+ {
+ LOG_WARNING("reset_mode argument is deprecated. reset_mode = reset_run");
+ }
else if (strcmp(args[2], "reset_init") == 0)
- (*last_target_p)->reset_mode = RESET_INIT;
+ {
+ LOG_WARNING("reset_mode argument is deprecated. reset_mode = reset_run");
+ }
else if (strcmp(args[2], "run_and_halt") == 0)
- (*last_target_p)->reset_mode = RESET_RUN_AND_HALT;
+ {
+ LOG_WARNING("reset_mode argument is deprecated. reset_mode = reset_run");
+ }
else if (strcmp(args[2], "run_and_init") == 0)
- (*last_target_p)->reset_mode = RESET_RUN_AND_INIT;
+ {
+ LOG_WARNING("reset_mode argument is deprecated. reset_mode = reset_run");
+ }
else
{
/* Kludge! we want to make this reset arg optional while remaining compatible! */
int handle_reset_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
target_t *target = get_current_target(cmd_ctx);
- enum target_reset_mode reset_mode = target->reset_mode;
- enum target_reset_mode save = target->reset_mode;
+ enum target_reset_mode reset_mode = RESET_RUN;
LOG_DEBUG("-");
/* reset *all* targets */
target_process_reset(cmd_ctx);
- /* Restore default reset mode for this target */
- target->reset_mode = save;
-
return ERROR_OK;
}
u32 v;
const char *varname;
u8 buffer[4096];
- int i, n, e, retval;
+ int i, n, e, retval;
/* argv[1] = name of array to get the data
* argv[2] = desired width