.cfg files are now executed as Jim Tcl. Commands that terminate script w/error message.
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 11 Jul 2008 09:06:36 +0000 (09:06 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 11 Jul 2008 09:06:36 +0000 (09:06 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@790 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/helper/command.c
src/helper/command.h
src/helper/interpreter.c
src/helper/options.c
src/target/target/at91eb40a.cfg

index 79d64ba7d6472f5743e91d17a063c79b43437253..6acd53c1e650c014026dfc85c5ed21c1d68ed218 100644 (file)
@@ -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, ...)
 {
index ea3383e38802bcb78c4dcb861d18ded29a02c302..6a1da02410fa36ec6bb21418110af4cb8914d3e4 100644 (file)
@@ -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)
index 186d992e3cb48f1d38d46e9da3d4a40b00aac5be..8dbb790922c2ab5c6086b910803ece20cc47b890 100644 (file)
@@ -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]);
 }
index f62ab16b2b6f9922538048b6d90876515ab8fbfb..5ec558cfe01c7c6d8713be5692f2bcf0a7568070 100644 (file)
@@ -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;
                        }
index 4fee88d8f1e764d23b7d3acce7d785134ddb2048..2ca15d9115fe38805350b5ffc24a5cf0b85838e8 100644 (file)
@@ -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 !"
+}