if (packet[0] == 'c')
{
LOG_DEBUG("continue");
+ target_invoke_script(connection->cmd_ctx, target, "pre_resume");
target_resume(target, current, address, 0, 0); /* resume at current address, don't handle breakpoints, not debugging */
}
else if (packet[0] == 's')
switch( detach_mode )
{
case GDB_DETACH_RESUME:
+ target_invoke_script(connection->cmd_ctx, target, "pre_resume");
target_resume(target, 1, 0, 1, 0);
break;
int cli_target_callback_event_handler(struct target_s *target, enum target_event event, void *priv);
-
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);
if (event == TARGET_EVENT_HALTED)
{
target_unregister_event_callback(target_init_handler, priv);
-
target_invoke_script(cmd_ctx, target, "post_reset");
-
jtag_execute_queue();
}
LOG_ERROR("Target not examined yet");
return ERROR_FAIL;
}
+
return target->type->resume(target, current, address, handle_breakpoints, debug_execution);
}
-
int target_process_reset(struct command_context_s *cmd_ctx)
{
int retval = ERROR_OK;
target = target->next;
}
target_unregister_event_callback(target_init_handler, cmd_ctx);
-
jtag->speed(jtag_speed_post_reset);
return target_call_timer_callbacks(0);
}
-
int target_alloc_working_area(struct target_s *target, u32 size, working_area_t **area)
{
working_area_t *c = target->working_areas;
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;
return handle_wait_halt_command(cmd_ctx, cmd, args, argc);
}
-
int handle_soft_reset_halt_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
target_t *target = get_current_target(cmd_ctx);
int retval;
target_t *target = get_current_target(cmd_ctx);
+ target_invoke_script(cmd_ctx, target, "pre_resume");
+
if (argc == 0)
retval = target_resume(target, 1, 0, 1, 0); /* current pc, addr = 0, handle breakpoints, not debugging */
else if (argc == 1)
value = strtoul(args[1], NULL, 0);
if (argc == 3)
count = strtoul(args[2], NULL, 0);
-
-
+
switch (cmd[2])
{
case 'w':
enum target_reset_mode reset_mode; /* what to do after a reset */
int run_and_halt_time; /* how long the target should run after a run_and_halt reset */
u32 working_area; /* working area (initialized RAM). Evaluated
- upon first allocation from virtual/physical address.
- */
+ upon first allocation from virtual/physical address. */
u32 working_area_virt; /* virtual address */
u32 working_area_phys; /* physical address */
u32 working_area_size; /* size in bytes */
extern int target_free_all_working_areas(struct target_s *target);
extern int target_free_all_working_areas_restore(struct target_s *target, int restore);
-
extern target_t *targets;
extern target_event_callback_t *target_event_callbacks;
int target_invoke_script(struct command_context_s *cmd_ctx, target_t *target, char *name);
-
#define ERROR_TARGET_INVALID (-300)
#define ERROR_TARGET_INIT_FAILED (-301)
#define ERROR_TARGET_TIMEOUT (-302)