allows launching OpenOCD w/telnet+gdb server w/the

target powered down.

git-svn-id: svn://svn.berlios.de/openocd/trunk@570 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
oharboe 2008-04-13 11:42:49 +00:00
parent d9f50cb7d6
commit 7de51ceef9
1 changed files with 21 additions and 11 deletions

View File

@ -85,6 +85,7 @@ void exit_handler(void)
/* OpenOCD can't really handle failure of this command. Patches welcome! :-) */ /* OpenOCD can't really handle failure of this command. Patches welcome! :-) */
int handle_init_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) int handle_init_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
int retval;
static int initialized=0; static int initialized=0;
if (initialized) if (initialized)
return ERROR_OK; return ERROR_OK;
@ -95,21 +96,30 @@ int handle_init_command(struct command_context_s *cmd_ctx, char *cmd, char **arg
atexit(exit_handler); atexit(exit_handler);
/* FIX!!! this should happen *after* target_init(), but
* for now there are target initialisations that talk
* to JTAG whereas that *should* happen during target_examine()
*/
if (jtag_init(cmd_ctx) != ERROR_OK)
return ERROR_FAIL;
LOG_DEBUG("jtag init complete");
if (target_init(cmd_ctx) != ERROR_OK) if (target_init(cmd_ctx) != ERROR_OK)
return ERROR_FAIL; return ERROR_FAIL;
LOG_DEBUG("target init complete"); LOG_DEBUG("target init complete");
if (target_examine(cmd_ctx) != ERROR_OK) if ((retval=jtag_interface_init(cmd_ctx)) != ERROR_OK)
return ERROR_FAIL; {
LOG_DEBUG("target examine complete"); /* we must be able to set up the jtag interface */
return retval;
}
LOG_DEBUG("jtag interface init complete");
/* Try to initialize & examine the JTAG chain at this point, but
* continue startup regardless
*/
if (jtag_init(cmd_ctx) == ERROR_OK)
{
LOG_DEBUG("jtag init complete");
if (target_examine(cmd_ctx) == ERROR_OK)
{
LOG_DEBUG("jtag examine complete");
}
}
if (flash_init_drivers(cmd_ctx) != ERROR_OK) if (flash_init_drivers(cmd_ctx) != ERROR_OK)
return ERROR_FAIL; return ERROR_FAIL;