- Fixing two compiler warnings

- Reducing  stack usage for recursive scripts
- Do not exit on bogus arguments to reset_config. No longer exit the application upon bogus arguments to reset_config, but return errors.

thanks to Øyvind Harboe for these patches.

git-svn-id: svn://svn.berlios.de/openocd/trunk@226 b42882b7-edfa-0310-969c-e2dbd0fdcd60
__archive__
mifi 2007-12-10 19:46:04 +00:00
parent 25ba5741f4
commit 9c999216b1
4 changed files with 24 additions and 12 deletions

View File

@ -674,7 +674,7 @@ int at91sam7_erase(struct flash_bank_s *bank, int first, int last)
int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last) int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
u32 cmd, pagen, status; u32 cmd, pagen;
u8 flashplane; u8 flashplane;
int lockregion; int lockregion;

View File

@ -2046,7 +2046,7 @@ int cfi_info(struct flash_bank_s *bank, char *buf, int buf_size)
int printed; int printed;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
if (cfi_info->qry[0] == -1) if (cfi_info->qry[0] == (char)-1)
{ {
printed = snprintf(buf, buf_size, "\ncfi flash bank not probed yet\n"); printed = snprintf(buf, buf_size, "\ncfi flash bank not probed yet\n");
return ERROR_OK; return ERROR_OK;

View File

@ -383,7 +383,11 @@ int command_run_file(command_context_t *context, FILE *file, enum command_mode m
{ {
int retval = ERROR_OK; int retval = ERROR_OK;
int old_command_mode; int old_command_mode;
char buffer[4096]; char *buffer=malloc(4096);
if (buffer==NULL)
{
return ERROR_INVALID_ARGUMENTS;
}
old_command_mode = context->mode; old_command_mode = context->mode;
context->mode = mode; context->mode = mode;
@ -422,6 +426,9 @@ int command_run_file(command_context_t *context, FILE *file, enum command_mode m
} }
context->mode = old_command_mode; context->mode = old_command_mode;
free(buffer);
return retval; return retval;
} }

View File

@ -1446,7 +1446,8 @@ int jtag_init(struct command_context_s *cmd_ctx)
if (validate_tries > 5) if (validate_tries > 5)
{ {
ERROR("Could not validate JTAG chain, exit"); ERROR("Could not validate JTAG chain, exit");
exit(-1); jtag = NULL;
return ERROR_JTAG_INVALID_INTERFACE;
} }
usleep(10000); usleep(10000);
} }
@ -1568,8 +1569,9 @@ int handle_reset_config_command(struct command_context_s *cmd_ctx, char *cmd, ch
jtag_reset_config = RESET_TRST_AND_SRST; jtag_reset_config = RESET_TRST_AND_SRST;
else else
{ {
ERROR("invalid reset_config argument"); ERROR("invalid reset_config argument, defaulting to none");
exit(-1); jtag_reset_config = RESET_NONE;
return ERROR_INVALID_ARGUMENTS;
} }
} }
@ -1585,8 +1587,9 @@ int handle_reset_config_command(struct command_context_s *cmd_ctx, char *cmd, ch
jtag_reset_config &= ~(RESET_SRST_PULLS_TRST | RESET_TRST_PULLS_SRST); jtag_reset_config &= ~(RESET_SRST_PULLS_TRST | RESET_TRST_PULLS_SRST);
else else
{ {
ERROR("invalid reset_config argument"); ERROR("invalid reset_config argument, defaulting to none");
exit(-1); jtag_reset_config = RESET_NONE;
return ERROR_INVALID_ARGUMENTS;
} }
} }
@ -1598,8 +1601,9 @@ int handle_reset_config_command(struct command_context_s *cmd_ctx, char *cmd, ch
jtag_reset_config &= ~RESET_TRST_OPEN_DRAIN; jtag_reset_config &= ~RESET_TRST_OPEN_DRAIN;
else else
{ {
ERROR("invalid reset_config argument"); ERROR("invalid reset_config argument, defaulting to none");
exit(-1); jtag_reset_config = RESET_NONE;
return ERROR_INVALID_ARGUMENTS;
} }
} }
@ -1611,8 +1615,9 @@ int handle_reset_config_command(struct command_context_s *cmd_ctx, char *cmd, ch
jtag_reset_config &= ~RESET_SRST_PUSH_PULL; jtag_reset_config &= ~RESET_SRST_PUSH_PULL;
else else
{ {
ERROR("invalid reset_config argument"); ERROR("invalid reset_config argument, defaulting to none");
exit(-1); jtag_reset_config = RESET_NONE;
return ERROR_INVALID_ARGUMENTS;
} }
} }