git-svn-id: svn://svn.berlios.de/openocd/trunk@790 b42882b7-edfa-0310-969c-e2dbd0fdcd60tags/v0.1.0
@@ -474,59 +474,6 @@ int command_run_line(command_context_t *context, char *line) | |||||
return jim_command(context, line); | return jim_command(context, line); | ||||
} | } | ||||
int command_run_file(command_context_t *context, FILE *file, enum command_mode mode) | |||||
{ | |||||
int retval = ERROR_OK; | |||||
int old_command_mode; | |||||
char *buffer=malloc(4096); | |||||
if (buffer==NULL) | |||||
{ | |||||
return ERROR_INVALID_ARGUMENTS; | |||||
} | |||||
old_command_mode = context->mode; | |||||
context->mode = mode; | |||||
while (fgets(buffer, 4096, file)) | |||||
{ | |||||
char *p; | |||||
char *cmd, *end; | |||||
/* stop processing line after a comment (#, !) or a LF, CR were encountered */ | |||||
if ((p = strpbrk(buffer, "#!\r\n"))) | |||||
*p = 0; | |||||
/* skip over leading whitespace */ | |||||
cmd = buffer; | |||||
while (isspace(*cmd)) | |||||
cmd++; | |||||
/* empty (all whitespace) line? */ | |||||
if (!*cmd) | |||||
continue; | |||||
/* search the end of the current line, ignore trailing whitespace */ | |||||
for (p = end = cmd; *p; p++) | |||||
if (!isspace(*p)) | |||||
end = p; | |||||
/* terminate end */ | |||||
*++end = 0; | |||||
if (strcasecmp(cmd, "quit") == 0) | |||||
break; | |||||
/* run line */ | |||||
if ((retval = command_run_line(context, cmd)) == ERROR_COMMAND_CLOSE_CONNECTION) | |||||
break; | |||||
} | |||||
context->mode = old_command_mode; | |||||
free(buffer); | |||||
return retval; | |||||
} | |||||
int command_run_linef(command_context_t *context, char *format, ...) | int command_run_linef(command_context_t *context, char *format, ...) | ||||
{ | { | ||||
@@ -76,7 +76,6 @@ extern void command_print_sameline(command_context_t *context, char *format, ... | |||||
extern int command_run_line(command_context_t *context, char *line); | extern int command_run_line(command_context_t *context, char *line); | ||||
extern int command_run_linef(command_context_t *context, char *format, ...); | extern int command_run_linef(command_context_t *context, char *format, ...); | ||||
extern int command_run_line_internal(command_context_t *context, char *line); | extern int command_run_line_internal(command_context_t *context, char *line); | ||||
extern int command_run_file(command_context_t *context, FILE *file, enum command_mode mode); | |||||
extern void command_output_text(command_context_t *context, const char *data); | extern void command_output_text(command_context_t *context, const char *data); | ||||
#define ERROR_COMMAND_CLOSE_CONNECTION (-600) | #define ERROR_COMMAND_CLOSE_CONNECTION (-600) | ||||
@@ -221,17 +221,7 @@ int handle_script_command(struct command_context_s *cmd_ctx, char *cmd, char **a | |||||
if (argc != 1) | if (argc != 1) | ||||
return ERROR_COMMAND_SYNTAX_ERROR; | return ERROR_COMMAND_SYNTAX_ERROR; | ||||
script_file = open_file_from_path (args[0], "r"); | |||||
if (!script_file) | |||||
{ | |||||
command_print(cmd_ctx, "couldn't open script file %s", args[0]); | |||||
return ERROR_OK; | |||||
} | |||||
command_run_file(cmd_ctx, script_file, cmd_ctx->mode); | |||||
fclose(script_file); | |||||
return ERROR_OK; | |||||
/* Run a tcl script file */ | |||||
return command_run_linef(cmd_ctx, "source [find {%s}]", args[0]); | |||||
} | } |
@@ -110,15 +110,7 @@ int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[] | |||||
break; | break; | ||||
case 'f': /* --file | -f */ | case 'f': /* --file | -f */ | ||||
{ | { | ||||
char *t=strrchr(optarg, '.'); | |||||
if (strcmp(t, ".tcl")==0) | |||||
{ | |||||
/* Files ending in .tcl are executed as Tcl files */ | |||||
snprintf(command_buffer, 128, "source [find {%s}]", optarg); | |||||
} else | |||||
{ | |||||
snprintf(command_buffer, 128, "script %s", optarg); | |||||
} | |||||
snprintf(command_buffer, 128, "script %s", optarg); | |||||
add_config_command(command_buffer); | add_config_command(command_buffer); | ||||
break; | break; | ||||
} | } | ||||
@@ -20,9 +20,6 @@ target arm7tdmi little 0 arm7tdmi-s_r4 | |||||
arm7 fast_memory_access enable | arm7 fast_memory_access enable | ||||
arm7_9 dcc_downloads enable | arm7_9 dcc_downloads enable | ||||
# OpenOCD does not have a flash driver for for AT91FR40162S | |||||
target_script 0 reset event/at91eb40a_reset.script | |||||
#flash driver | #flash driver | ||||
flash bank ecosflash 0x01000000 0x200000 2 2 0 ecos/at91eb40a.elf | flash bank ecosflash 0x01000000 0x200000 2 2 0 ecos/at91eb40a.elf | ||||
@@ -34,3 +31,25 @@ working_area 0 0x00000000 0x20000 nobackup | |||||
#often than not. The user can disable this in his | #often than not. The user can disable this in his | ||||
#subsequent config script. | #subsequent config script. | ||||
arm7_9 force_hw_bkpts enable | arm7_9 force_hw_bkpts enable | ||||
set reset_count 0 | |||||
proc target_reset_0 {} { | |||||
global reset_count | |||||
# Reset script for AT91EB40a | |||||
reg cpsr 0x000000D3 | |||||
mww 0xFFE00020 0x1 | |||||
mww 0xFFE00024 0x00000000 | |||||
mww 0xFFE00000 0x01002539 | |||||
mww 0xFFFFF124 0xFFFFFFFF | |||||
mww 0xffff0010 0x100 | |||||
mww 0xffff0034 0x100 | |||||
set reset_count [expr $reset_count+1] | |||||
echo "Testing reset $reset_count !" | |||||
} | |||||
proc target_pre_reset_0 {} { | |||||
global reset_count | |||||
set reset_count [expr $reset_count+1] | |||||
echo "Testing pre_reset $reset_count !" | |||||
} |