- if((retval = target_register_timer_callback(handle_target, 100, 1, NULL)) != ERROR_OK)
+ if ((retval = target_register_timer_callback(handle_target, 100, 1, NULL)) != ERROR_OK)
- if((retval = target_read_memory(target, new_wa->address, 4, new_wa->size / 4, new_wa->backup)) != ERROR_OK)
+ if ((retval = target_read_memory(target, new_wa->address, 4, new_wa->size / 4, new_wa->backup)) != ERROR_OK)
- if((retval = target_write_memory(target, area->address, 4, area->size / 4, area->backup)) != ERROR_OK)
+ if ((retval = target_write_memory(target, area->address, 4, area->size / 4, area->backup)) != ERROR_OK)
LOG_USER("target state: %s",
Jim_Nvp_value2name_simple(nvp_target_state,target->state)->name);
LOG_USER("target state: %s",
Jim_Nvp_value2name_simple(nvp_target_state,target->state)->name);
register_command(cmd_ctx, NULL, "verify_image", handle_verify_image_command, COMMAND_EXEC, "verify_image <file> [offset] [type]");
register_command(cmd_ctx, NULL, "test_image", handle_test_image_command, COMMAND_EXEC, "test_image <file> [offset] [type]");
register_command(cmd_ctx, NULL, "verify_image", handle_verify_image_command, COMMAND_EXEC, "verify_image <file> [offset] [type]");
register_command(cmd_ctx, NULL, "test_image", handle_test_image_command, COMMAND_EXEC, "test_image <file> [offset] [type]");
if (!powerDropout && !srstAsserted)
{
/* polling may fail silently until the target has been examined */
if (!powerDropout && !srstAsserted)
{
/* polling may fail silently until the target has been examined */
static int handle_resume_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
static int handle_resume_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
- return target_resume(target, 0, addr, 1, 0);
+ return target_resume(target, current, addr, 1, 0);
}
static int handle_step_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
}
static int handle_step_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
}
if ((retval = target_write_buffer(target, image.sections[i].base_address+offset, length, buffer+offset)) != ERROR_OK)
}
if ((retval = target_write_buffer(target, image.sections[i].base_address+offset, length, buffer+offset)) != ERROR_OK)
image_calculate_checksum( buffer, buf_cnt, &checksum );
retval = target_checksum_memory(target, image.sections[i].base_address, buf_cnt, &mem_checksum);
image_calculate_checksum( buffer, buf_cnt, &checksum );
retval = target_checksum_memory(target, image.sections[i].base_address, buf_cnt, &mem_checksum);
/*append binary memory gmon.out profile_hist_data (profile_hist_data + profile_hist_hdr.hist_size) */
char *data=malloc(2*length);
/*append binary memory gmon.out profile_hist_data (profile_hist_data + profile_hist_hdr.hist_size) */
char *data=malloc(2*length);
struct timeval timeout, now;
gettimeofday(&timeout, NULL);
struct timeval timeout, now;
gettimeofday(&timeout, NULL);
if ((numSamples>=maxSample) || ((now.tv_sec >= timeout.tv_sec) && (now.tv_usec >= timeout.tv_usec)))
{
command_print(cmd_ctx, "Profiling completed. %d samples.", numSamples);
if ((numSamples>=maxSample) || ((now.tv_sec >= timeout.tv_sec) && (now.tv_usec >= timeout.tv_usec)))
{
command_print(cmd_ctx, "Profiling completed. %d samples.", numSamples);
{
target_resume(target, 1, 0, 0, 0); /* current pc, addr = 0, do not handle breakpoints, not debugging */
}
{
target_resume(target, 1, 0, 0, 0); /* current pc, addr = 0, do not handle breakpoints, not debugging */
}
e,
Jim_Nvp_value2name_simple( nvp_target_event, e )->name,
Jim_GetString( teap->body, NULL ) );
e,
Jim_Nvp_value2name_simple( nvp_target_event, e )->name,
Jim_GetString( teap->body, NULL ) );
LOG_DEBUG( "event: %d %s - no action",
e,
Jim_Nvp_value2name_simple( nvp_target_event, e )->name );
LOG_DEBUG( "event: %d %s - no action",
e,
Jim_Nvp_value2name_simple( nvp_target_event, e )->name );
/* target defines a configure function */
/* target gets first dibs on parameters */
e = (*(target->type->target_jim_configure))( target, goi );
/* target defines a configure function */
/* target gets first dibs on parameters */
e = (*(target->type->target_jim_configure))( target, goi );
/* An error */
return e;
}
/* otherwise we 'continue' below */
}
e = Jim_GetOpt_Nvp( goi, nvp_config_opts, &n );
/* An error */
return e;
}
/* otherwise we 'continue' below */
}
e = Jim_GetOpt_Nvp( goi, nvp_config_opts, &n );
Jim_WrongNumArgs( goi->interp, goi->argc, goi->argv, "NO PARAMS");
return JIM_ERR;
}
Jim_WrongNumArgs( goi->interp, goi->argc, goi->argv, "NO PARAMS");
return JIM_ERR;
}
Jim_WrongNumArgs( goi->interp, goi->argc, goi->argv, "-event ?event-name? ...");
return JIM_ERR;
}
e = Jim_GetOpt_Nvp( goi, nvp_target_event, &n );
Jim_WrongNumArgs( goi->interp, goi->argc, goi->argv, "-event ?event-name? ...");
return JIM_ERR;
}
e = Jim_GetOpt_Nvp( goi, nvp_target_event, &n );
Jim_WrongNumArgs( goi->interp, goi->argc, goi->argv, "-event ?event-name? ?EVENT-BODY?");
return JIM_ERR;
}
} else {
Jim_WrongNumArgs( goi->interp, goi->argc, goi->argv, "-event ?event-name? ?EVENT-BODY?");
return JIM_ERR;
}
} else {
Jim_WrongNumArgs(goi->interp, goi->argc, goi->argv, "-event ?event-name?");
return JIM_ERR;
}
Jim_WrongNumArgs(goi->interp, goi->argc, goi->argv, "-event ?event-name?");
return JIM_ERR;
}
/* create new */
teap = calloc( 1, sizeof(*teap) );
}
teap->event = n->value;
Jim_GetOpt_Obj( goi, &o );
/* create new */
teap = calloc( 1, sizeof(*teap) );
}
teap->event = n->value;
Jim_GetOpt_Obj( goi, &o );
Jim_DecrRefCount( interp, teap->body );
}
teap->body = Jim_DuplicateObj( goi->interp, o );
Jim_DecrRefCount( interp, teap->body );
}
teap->body = Jim_DuplicateObj( goi->interp, o );
Jim_SetEmptyResult( goi->interp );
} else {
Jim_SetResult( goi->interp, Jim_DuplicateObj( goi->interp, teap->body ) );
Jim_SetEmptyResult( goi->interp );
} else {
Jim_SetResult( goi->interp, Jim_DuplicateObj( goi->interp, teap->body ) );
target_free_all_working_areas(target);
e = Jim_GetOpt_Wide( goi, &w );
target_free_all_working_areas(target);
e = Jim_GetOpt_Wide( goi, &w );
target_free_all_working_areas(target);
e = Jim_GetOpt_Wide( goi, &w );
target_free_all_working_areas(target);
e = Jim_GetOpt_Wide( goi, &w );
target_free_all_working_areas(target);
e = Jim_GetOpt_Wide( goi, &w );
target_free_all_working_areas(target);
e = Jim_GetOpt_Wide( goi, &w );
target_free_all_working_areas(target);
e = Jim_GetOpt_Wide( goi, &w );
target_free_all_working_areas(target);
e = Jim_GetOpt_Wide( goi, &w );
Jim_GetOpt_NvpUnknown( goi, nvp_target_endian, 1 );
return e;
}
target->endianness = n->value;
} else {
Jim_GetOpt_NvpUnknown( goi, nvp_target_endian, 1 );
return e;
}
target->endianness = n->value;
} else {
target->endianness = TARGET_LITTLE_ENDIAN;
n = Jim_Nvp_value2name_simple( nvp_target_endian, target->endianness );
}
target->endianness = TARGET_LITTLE_ENDIAN;
n = Jim_Nvp_value2name_simple( nvp_target_endian, target->endianness );
}
free((void *)(target->variant));
}
e = Jim_GetOpt_String( goi, &cp, NULL );
target->variant = strdup(cp);
} else {
free((void *)(target->variant));
}
e = Jim_GetOpt_String( goi, &cp, NULL );
target->variant = strdup(cp);
} else {
Jim_Obj *o;
jtag_tap_t *tap;
target_free_all_working_areas(target);
e = Jim_GetOpt_Obj( goi, &o );
Jim_Obj *o;
jtag_tap_t *tap;
target_free_all_working_areas(target);
e = Jim_GetOpt_Obj( goi, &o );
/* commands here are in an NVP table */
e = Jim_GetOpt_Nvp( &goi, target_options, &n );
/* commands here are in an NVP table */
e = Jim_GetOpt_Nvp( &goi, target_options, &n );
Jim_GetOpt_NvpUnknown( &goi, target_options, 0 );
return e;
}
/* Assume blank result */
Jim_SetEmptyResult( goi.interp );
Jim_GetOpt_NvpUnknown( &goi, target_options, 0 );
return e;
}
/* Assume blank result */
Jim_SetEmptyResult( goi.interp );
Jim_WrongNumArgs( goi.interp, goi.argc, goi.argv, "missing: -option VALUE ...");
return JIM_ERR;
}
Jim_WrongNumArgs( goi.interp, goi.argc, goi.argv, "missing: -option VALUE ...");
return JIM_ERR;
}
return target_configure( &goi, target );
case TS_CMD_CGET:
// some things take params
return target_configure( &goi, target );
case TS_CMD_CGET:
// some things take params
Jim_WrongNumArgs( goi.interp, 0, goi.argv, "missing: ?-option?");
return JIM_ERR;
}
Jim_WrongNumArgs( goi.interp, 0, goi.argv, "missing: ?-option?");
return JIM_ERR;
}
e = target_write_memory( target, a, b, 1, target_buf );
e = target_write_memory( target, a, b, 1, target_buf );
Jim_SetResult_sprintf( interp, "Error writing @ 0x%08x: %d\n", (int)(a), e );
return JIM_ERR;
}
Jim_SetResult_sprintf( interp, "Error writing @ 0x%08x: %d\n", (int)(a), e );
return JIM_ERR;
}
Jim_SetResult_sprintf( goi.interp, "expected: %s ADDR [COUNT]", n->name );
return JIM_ERR;
}
e = Jim_GetOpt_Wide( &goi, &a );
Jim_SetResult_sprintf( goi.interp, "expected: %s ADDR [COUNT]", n->name );
return JIM_ERR;
}
e = Jim_GetOpt_Wide( &goi, &a );
y = 16;
}
e = target_read_memory( target, a, b, y / b, target_buf );
y = 16;
}
e = target_read_memory( target, a, b, y / b, target_buf );
Jim_SetResult_sprintf( interp, "error reading target @ 0x%08lx", (int)(a) );
return JIM_ERR;
}
Jim_fprintf( interp, interp->cookie_stdout, "0x%08x ", (int)(a) );
Jim_SetResult_sprintf( interp, "error reading target @ 0x%08lx", (int)(a) );
return JIM_ERR;
}
Jim_fprintf( interp, interp->cookie_stdout, "0x%08x ", (int)(a) );
z = target_buffer_get_u32( target, &(target_buf[ x * 4 ]) );
Jim_fprintf( interp, interp->cookie_stdout, "%08x ", (int)(z) );
}
z = target_buffer_get_u32( target, &(target_buf[ x * 4 ]) );
Jim_fprintf( interp, interp->cookie_stdout, "%08x ", (int)(z) );
}
z = target_buffer_get_u16( target, &(target_buf[ x * 2 ]) );
Jim_fprintf( interp, interp->cookie_stdout, "%04x ", (int)(z) );
}
z = target_buffer_get_u16( target, &(target_buf[ x * 2 ]) );
Jim_fprintf( interp, interp->cookie_stdout, "%04x ", (int)(z) );
}
z = target_buffer_get_u8( target, &(target_buf[ x * 4 ]) );
Jim_fprintf( interp, interp->cookie_stdout, "%02x ", (int)(z) );
}
z = target_buffer_get_u8( target, &(target_buf[ x * 4 ]) );
Jim_fprintf( interp, interp->cookie_stdout, "%02x ", (int)(z) );
}
Jim_fprintf( interp, interp->cookie_stdout, " " );
}
break;
}
/* ascii-ify the bytes */
Jim_fprintf( interp, interp->cookie_stdout, " " );
}
break;
}
/* ascii-ify the bytes */
return target_array2mem( goi.interp, target, goi.argc, goi.argv );
break;
case TS_CMD_EXAMINE:
return target_array2mem( goi.interp, target, goi.argc, goi.argv );
break;
case TS_CMD_EXAMINE:
Jim_WrongNumArgs( goi.interp, 2, argv, "[no parameters]");
return JIM_ERR;
}
if (!target->tap->enabled)
goto err_tap_disabled;
e = target->type->examine( target );
Jim_WrongNumArgs( goi.interp, 2, argv, "[no parameters]");
return JIM_ERR;
}
if (!target->tap->enabled)
goto err_tap_disabled;
e = target->type->examine( target );
Jim_WrongNumArgs( goi.interp, 2, argv, "[no parameters]");
return JIM_ERR;
}
if (!target->tap->enabled)
goto err_tap_disabled;
Jim_WrongNumArgs( goi.interp, 2, argv, "[no parameters]");
return JIM_ERR;
}
if (!target->tap->enabled)
goto err_tap_disabled;
Jim_WrongNumArgs( interp, 2, argv, "t|f|assert|deassert BOOL");
return JIM_ERR;
}
e = Jim_GetOpt_Nvp( &goi, nvp_assert, &n );
Jim_WrongNumArgs( interp, 2, argv, "t|f|assert|deassert BOOL");
return JIM_ERR;
}
e = Jim_GetOpt_Nvp( &goi, nvp_assert, &n );
Jim_GetOpt_NvpUnknown( &goi, nvp_assert, 1 );
return e;
}
/* the halt or not param */
e = Jim_GetOpt_Wide( &goi, &a);
Jim_GetOpt_NvpUnknown( &goi, nvp_assert, 1 );
return e;
}
/* the halt or not param */
e = Jim_GetOpt_Wide( &goi, &a);
Jim_WrongNumArgs( goi.interp, 0, argv, "halt [no parameters]");
return JIM_ERR;
}
Jim_WrongNumArgs( goi.interp, 0, argv, "halt [no parameters]");
return JIM_ERR;
}
Jim_SetResult_sprintf( goi.interp, "%s STATENAME TIMEOUTMSECS", n->name );
return JIM_ERR;
}
e = Jim_GetOpt_Nvp( &goi, nvp_target_state, &n );
Jim_SetResult_sprintf( goi.interp, "%s STATENAME TIMEOUTMSECS", n->name );
return JIM_ERR;
}
e = Jim_GetOpt_Nvp( &goi, nvp_target_state, &n );
Jim_GetOpt_NvpUnknown( &goi, nvp_target_state,1 );
return e;
}
e = Jim_GetOpt_Wide( &goi, &a );
Jim_GetOpt_NvpUnknown( &goi, nvp_target_state,1 );
return e;
}
e = Jim_GetOpt_Wide( &goi, &a );
return e;
}
if (!target->tap->enabled)
goto err_tap_disabled;
e = target_wait_state( target, n->value, a );
return e;
}
if (!target->tap->enabled)
goto err_tap_disabled;
e = target_wait_state( target, n->value, a );
Jim_SetResult_sprintf( goi.interp,
"target: %s wait %s fails (%d) %s",
target->cmd_name,
Jim_SetResult_sprintf( goi.interp,
"target: %s wait %s fails (%d) %s",
target->cmd_name,
target->cmd_name );
command_print( cmd_ctx, "%-25s | Body", "Event");
command_print( cmd_ctx, "------------------------- | ----------------------------------------");
target->cmd_name );
command_print( cmd_ctx, "%-25s | Body", "Event");
command_print( cmd_ctx, "------------------------- | ----------------------------------------");
Jim_WrongNumArgs( goi.interp, 0, argv, "[no parameters]");
return JIM_ERR;
}
Jim_WrongNumArgs( goi.interp, 0, argv, "[no parameters]");
return JIM_ERR;
}
Jim_Nvp_value2name_simple(nvp_target_state,target->state)->name,-1);
return JIM_OK;
case TS_CMD_INVOKE_EVENT:
Jim_Nvp_value2name_simple(nvp_target_state,target->state)->name,-1);
return JIM_OK;
case TS_CMD_INVOKE_EVENT:
Jim_SetResult_sprintf( goi.interp, "%s ?EVENTNAME?",n->name);
return JIM_ERR;
}
e = Jim_GetOpt_Nvp( &goi, nvp_target_event, &n );
Jim_SetResult_sprintf( goi.interp, "%s ?EVENTNAME?",n->name);
return JIM_ERR;
}
e = Jim_GetOpt_Nvp( &goi, nvp_target_event, &n );
struct command_context_s *cmd_ctx;
cmd_ctx = Jim_GetAssocData(goi->interp, "context");
struct command_context_s *cmd_ctx;
cmd_ctx = Jim_GetAssocData(goi->interp, "context");
Jim_WrongNumArgs( goi->interp, 1, goi->argv, "?name? ?type? ..options...");
return JIM_ERR;
}
Jim_WrongNumArgs( goi->interp, 1, goi->argv, "?name? ?type? ..options...");
return JIM_ERR;
}
Jim_GetOpt_Obj( goi, &new_cmd );
/* does this command exist? */
cmd = Jim_GetCommand( goi->interp, new_cmd, JIM_ERRMSG );
Jim_GetOpt_Obj( goi, &new_cmd );
/* does this command exist? */
cmd = Jim_GetCommand( goi->interp, new_cmd, JIM_ERRMSG );
cp = Jim_GetString( new_cmd, NULL );
Jim_SetResult_sprintf(goi->interp, "Command/target: %s Exists", cp);
return JIM_ERR;
cp = Jim_GetString( new_cmd, NULL );
Jim_SetResult_sprintf(goi->interp, "Command/target: %s Exists", cp);
return JIM_ERR;
e = Jim_GetOpt_String( goi, &cp2, NULL );
cp = cp2;
/* now does target type exist */
e = Jim_GetOpt_String( goi, &cp2, NULL );
cp = cp2;
/* now does target type exist */
- for( x = 0 ; target_types[x] ; x++ ){
- if( 0 == strcmp( cp, target_types[x]->name ) ){
+ for ( x = 0 ; target_types[x] ; x++ ){
+ if ( 0 == strcmp( cp, target_types[x]->name ) ){
Jim_SetResult_sprintf( goi->interp, "Unknown target type %s, try one of ", cp );
Jim_SetResult_sprintf( goi->interp, "Unknown target type %s, try one of ", cp );
Jim_AppendStrings( goi->interp,
Jim_GetResult(goi->interp),
target_types[x]->name,
Jim_AppendStrings( goi->interp,
Jim_GetResult(goi->interp),
target_types[x]->name,
Jim_GetOpt_Setup( &goi, interp, argc-1, argv+1 );
Jim_GetOpt_Setup( &goi, interp, argc-1, argv+1 );
Jim_WrongNumArgs(interp, 1, argv, "missing: command ...");
return JIM_ERR;
}
/* Jim_GetOpt_Debug( &goi ); */
r = Jim_GetOpt_Enum( &goi, target_cmds, &x );
Jim_WrongNumArgs(interp, 1, argv, "missing: command ...");
return JIM_ERR;
}
/* Jim_GetOpt_Debug( &goi ); */
r = Jim_GetOpt_Enum( &goi, target_cmds, &x );
Jim_WrongNumArgs( goi.interp, 1, goi.argv, "Too many parameters");
return JIM_ERR;
}
Jim_SetResultString( goi.interp, get_current_target( cmd_ctx )->cmd_name, -1 );
return JIM_OK;
case TG_CMD_TYPES:
Jim_WrongNumArgs( goi.interp, 1, goi.argv, "Too many parameters");
return JIM_ERR;
}
Jim_SetResultString( goi.interp, get_current_target( cmd_ctx )->cmd_name, -1 );
return JIM_OK;
case TG_CMD_TYPES:
Jim_WrongNumArgs( goi.interp, 1, goi.argv, "Too many parameters" );
return JIM_ERR;
}
Jim_SetResult( goi.interp, Jim_NewListObj( goi.interp, NULL, 0 ) );
Jim_WrongNumArgs( goi.interp, 1, goi.argv, "Too many parameters" );
return JIM_ERR;
}
Jim_SetResult( goi.interp, Jim_NewListObj( goi.interp, NULL, 0 ) );
Jim_ListAppendElement( goi.interp,
Jim_GetResult(goi.interp),
Jim_NewStringObj( goi.interp, target_types[x]->name, -1 ) );
}
return JIM_OK;
case TG_CMD_NAMES:
Jim_ListAppendElement( goi.interp,
Jim_GetResult(goi.interp),
Jim_NewStringObj( goi.interp, target_types[x]->name, -1 ) );
}
return JIM_OK;
case TG_CMD_NAMES:
Jim_WrongNumArgs( goi.interp, 1, goi.argv, "Too many parameters" );
return JIM_ERR;
}
Jim_SetResult( goi.interp, Jim_NewListObj( goi.interp, NULL, 0 ) );
target = all_targets;
Jim_WrongNumArgs( goi.interp, 1, goi.argv, "Too many parameters" );
return JIM_ERR;
}
Jim_SetResult( goi.interp, Jim_NewListObj( goi.interp, NULL, 0 ) );
target = all_targets;
Jim_ListAppendElement( goi.interp,
Jim_GetResult(goi.interp),
Jim_NewStringObj( goi.interp, target->cmd_name, -1 ) );
Jim_ListAppendElement( goi.interp,
Jim_GetResult(goi.interp),
Jim_NewStringObj( goi.interp, target->cmd_name, -1 ) );
Jim_WrongNumArgs( goi.interp, goi.argc, goi.argv, "?name ... config options ...");
return JIM_ERR;
}
return target_create( &goi );
break;
case TG_CMD_NUMBER:
Jim_WrongNumArgs( goi.interp, goi.argc, goi.argv, "?name ... config options ...");
return JIM_ERR;
}
return target_create( &goi );
break;
case TG_CMD_NUMBER:
Jim_SetResult_sprintf( goi.interp, "expected: target number ?NUMBER?");
return JIM_ERR;
}
e = Jim_GetOpt_Wide( &goi, &w );
Jim_SetResult_sprintf( goi.interp, "expected: target number ?NUMBER?");
return JIM_ERR;
}
e = Jim_GetOpt_Wide( &goi, &w );
Jim_WrongNumArgs( goi.interp, 0, goi.argv, "<no parameters>");
return JIM_ERR;
}
Jim_WrongNumArgs( goi.interp, 0, goi.argv, "<no parameters>");
return JIM_ERR;
}
{
retval = target_write_buffer(target, fastload[i].address, fastload[i].length, fastload[i].data);
}
{
retval = target_write_buffer(target, fastload[i].address, fastload[i].length, fastload[i].data);
}
}
int after=timeval_ms();
command_print(cmd_ctx, "Loaded image %f kBytes/s", (float)(size/1024.0)/((float)(after-ms)/1000.0));
}
int after=timeval_ms();
command_print(cmd_ctx, "Loaded image %f kBytes/s", (float)(size/1024.0)/((float)(after-ms)/1000.0));