summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/helper/command.c53
-rw-r--r--src/helper/command.h1
-rw-r--r--src/helper/interpreter.c14
-rw-r--r--src/helper/options.c10
-rw-r--r--src/target/target/at91eb40a.cfg25
5 files changed, 25 insertions, 78 deletions
diff --git a/src/helper/command.c b/src/helper/command.c
index 79d64ba7..6acd53c1 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -474,59 +474,6 @@ int command_run_line(command_context_t *context, char *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, ...)
{
diff --git a/src/helper/command.h b/src/helper/command.h
index ea3383e3..6a1da024 100644
--- a/src/helper/command.h
+++ b/src/helper/command.h
@@ -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_linef(command_context_t *context, char *format, ...);
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);
#define ERROR_COMMAND_CLOSE_CONNECTION (-600)
diff --git a/src/helper/interpreter.c b/src/helper/interpreter.c
index 186d992e..8dbb7909 100644
--- a/src/helper/interpreter.c
+++ b/src/helper/interpreter.c
@@ -221,17 +221,7 @@ int handle_script_command(struct command_context_s *cmd_ctx, char *cmd, char **a
if (argc != 1)
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]);
}
diff --git a/src/helper/options.c b/src/helper/options.c
index f62ab16b..5ec558cf 100644
--- a/src/helper/options.c
+++ b/src/helper/options.c
@@ -110,15 +110,7 @@ int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[]
break;
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);
break;
}
diff --git a/src/target/target/at91eb40a.cfg b/src/target/target/at91eb40a.cfg
index 4fee88d8..2ca15d91 100644
--- a/src/target/target/at91eb40a.cfg
+++ b/src/target/target/at91eb40a.cfg
@@ -20,9 +20,6 @@ target arm7tdmi little 0 arm7tdmi-s_r4
arm7 fast_memory_access 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 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
#subsequent config script.
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 !"
+}