From 381f9a2e8aa1697e2af3c2bcad962dfcfe7348d7 Mon Sep 17 00:00:00 2001 From: oharboe Date: Fri, 11 Jul 2008 09:06:36 +0000 Subject: [PATCH] .cfg files are now executed as Jim Tcl. Commands that terminate script w/error message. git-svn-id: svn://svn.berlios.de/openocd/trunk@790 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/helper/command.c | 53 --------------------------------- src/helper/command.h | 1 - src/helper/interpreter.c | 14 ++------- src/helper/options.c | 10 +------ src/target/target/at91eb40a.cfg | 25 ++++++++++++++-- 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 !" +} -- 2.39.5