added fast option.

git-svn-id: svn://svn.berlios.de/openocd/trunk@604 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
oharboe 2008-04-23 05:42:42 +00:00
parent 30dc76644d
commit 6510be8b8b
4 changed files with 38 additions and 2 deletions

View File

@ -741,6 +741,22 @@ Close the OpenOCD daemon, disconnecting all clients (GDB, Telnet).
@cindex debug_level
Display or adjust debug level to n<0-3>
@item @b{fast} [@var{enable/disable}]
@cindex fast
Default disabled. Set default behaviour of OpenOCD to be "fast and dangerous". For instance ARM7/9 DCC memory
downloads and fast memory access will work if the JTAG interface isn't too fast and
the core doesn't run at a too low frequency. Note that this option only changes the default
and that the indvidual options, like DCC memory downloads, can be enabled and disabled
individually.
The target specific "dangerous" optimisation tweaking options may come and go
as more robust and user friendly ways are found to ensure maximum throughput
and robustness with a minimum of configuration.
Typically the "fast enable" is specified first on the command line:
openocd -c "fast enable" -c "interface dummy" -f target/str710.cfg
@item @b{log_output} <@var{file}>
@cindex log_output
Redirect logging to <file> (default: stderr)

View File

@ -38,10 +38,13 @@
#include <stdio.h>
#include <unistd.h>
int fast_and_dangerous = 0;
void command_print_help_line(command_context_t* context, struct command_s *command, int indent);
int handle_sleep_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_time_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_fast_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int build_unique_lengths(command_context_t *context, command_t *commands)
{
@ -559,6 +562,9 @@ command_context_t* command_init()
register_command(context, NULL, "time", handle_time_command,
COMMAND_ANY, "time <cmd + args> - execute <cmd + args> and print time it took");
register_command(context, NULL, "fast", handle_fast_command,
COMMAND_ANY, "fast <enable/disable> - place at beginning of config files. Sets defaults to fast and dangerous.");
return context;
}
@ -578,6 +584,17 @@ int handle_sleep_command(struct command_context_s *cmd_ctx, char *cmd, char **ar
return ERROR_OK;
}
int handle_fast_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc!=1)
return ERROR_COMMAND_SYNTAX_ERROR;
fast_and_dangerous = strcmp("enable", args[0])==0;
return ERROR_OK;
}
int handle_time_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
duration_t duration;

View File

@ -79,4 +79,7 @@ extern int command_run_file(command_context_t *context, FILE *file, enum command
#define ERROR_COMMAND_CLOSE_CONNECTION (-600)
#define ERROR_COMMAND_SYNTAX_ERROR (-601)
extern int fast_and_dangerous;
#endif /* COMMAND_H */

View File

@ -2624,8 +2624,8 @@ int arm7_9_init_arch_info(target_t *target, arm7_9_common_t *arm7_9)
arm7_9->dcc_working_area = NULL;
arm7_9->fast_memory_access = 0;
arm7_9->dcc_downloads = 0;
arm7_9->fast_memory_access = fast_and_dangerous;
arm7_9->dcc_downloads = fast_and_dangerous;
armv4_5->arch_info = arm7_9;
armv4_5->read_core_reg = arm7_9_read_core_reg;