X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Ftarget.c;h=3505f9c251d40c396c66c3d3eae971679f8670e8;hp=6795b179d07fad5664f4e02160504e77f3b123f6;hb=e43979e7020ea9d05a3c0a2af444f292eacb6c53;hpb=86173cdbddde781b19ac630602f2d450a59b32b5 diff --git a/src/target/target.c b/src/target/target.c index 6795b179d0..3505f9c251 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -82,6 +82,7 @@ extern target_type_t arm9tdmi_target; extern target_type_t arm920t_target; extern target_type_t arm966e_target; extern target_type_t arm926ejs_target; +extern target_type_t fa526_target; extern target_type_t feroceon_target; extern target_type_t xscale_target; extern target_type_t cortexm3_target; @@ -98,6 +99,7 @@ target_type_t *target_types[] = &arm720t_target, &arm966e_target, &arm926ejs_target, + &fa526_target, &feroceon_target, &xscale_target, &cortexm3_target, @@ -142,7 +144,7 @@ const char *target_strerror_safe( int err ) const Jim_Nvp *n; n = Jim_Nvp_value2name_simple( nvp_error_target, err ); - if( n->name == NULL ){ + if ( n->name == NULL ){ return "unknown"; } else { return n->name; @@ -243,7 +245,7 @@ static int max_target_number(void) x = -1; t = all_targets; while( t ){ - if( x < t->target_number ){ + if ( x < t->target_number ){ x = (t->target_number)+1; } t = t->next; @@ -261,7 +263,7 @@ static int new_target_number(void) x = -1; t = all_targets; while(t){ - if( x < t->target_number ){ + if ( x < t->target_number ){ x = t->target_number; } t = t->next; @@ -271,8 +273,8 @@ static int new_target_number(void) static int target_continuous_poll = 1; -/* read a u32 from a buffer in target memory endianness */ -u32 target_buffer_get_u32(target_t *target, const uint8_t *buffer) +/* read a uint32_t from a buffer in target memory endianness */ +uint32_t target_buffer_get_u32(target_t *target, const uint8_t *buffer) { if (target->endianness == TARGET_LITTLE_ENDIAN) return le_to_h_u32(buffer); @@ -280,8 +282,8 @@ u32 target_buffer_get_u32(target_t *target, const uint8_t *buffer) return be_to_h_u32(buffer); } -/* read a u16 from a buffer in target memory endianness */ -u16 target_buffer_get_u16(target_t *target, const uint8_t *buffer) +/* read a uint16_t from a buffer in target memory endianness */ +uint16_t target_buffer_get_u16(target_t *target, const uint8_t *buffer) { if (target->endianness == TARGET_LITTLE_ENDIAN) return le_to_h_u16(buffer); @@ -295,8 +297,8 @@ uint8_t target_buffer_get_u8(target_t *target, const uint8_t *buffer) return *buffer & 0x0ff; } -/* write a u32 to a buffer in target memory endianness */ -void target_buffer_set_u32(target_t *target, uint8_t *buffer, u32 value) +/* write a uint32_t to a buffer in target memory endianness */ +void target_buffer_set_u32(target_t *target, uint8_t *buffer, uint32_t value) { if (target->endianness == TARGET_LITTLE_ENDIAN) h_u32_to_le(buffer, value); @@ -304,8 +306,8 @@ void target_buffer_set_u32(target_t *target, uint8_t *buffer, u32 value) h_u32_to_be(buffer, value); } -/* write a u16 to a buffer in target memory endianness */ -void target_buffer_set_u16(target_t *target, uint8_t *buffer, u16 value) +/* write a uint16_t to a buffer in target memory endianness */ +void target_buffer_set_u16(target_t *target, uint8_t *buffer, uint16_t value) { if (target->endianness == TARGET_LITTLE_ENDIAN) h_u16_to_le(buffer, value); @@ -351,7 +353,7 @@ static target_t *get_target_by_num(int num) target_t *target = all_targets; while (target){ - if( target->target_number == num ){ + if ( target->target_number == num ){ return target; } target = target->next; @@ -400,7 +402,7 @@ int target_halt(struct target_s *target) return target->type->halt(target); } -int target_resume(struct target_s *target, int current, u32 address, int handle_breakpoints, int debug_execution) +int target_resume(struct target_s *target, int current, uint32_t address, int handle_breakpoints, int debug_execution) { int retval; @@ -427,7 +429,7 @@ int target_process_reset(struct command_context_s *cmd_ctx, enum target_reset_mo int retval; Jim_Nvp *n; n = Jim_Nvp_value2name_simple( nvp_reset_modes, reset_mode ); - if( n->name == NULL ){ + if ( n->name == NULL ){ LOG_ERROR("invalid reset mode"); return ERROR_FAIL; } @@ -444,7 +446,7 @@ int target_process_reset(struct command_context_s *cmd_ctx, enum target_reset_mo target_continuous_poll = save_poll; - if(retval != JIM_OK) { + if (retval != JIM_OK) { Jim_PrintErrorMessage(interp); return ERROR_FAIL; } @@ -455,7 +457,7 @@ int target_process_reset(struct command_context_s *cmd_ctx, enum target_reset_mo return retval; } -static int default_virt2phys(struct target_s *target, u32 virtual, u32 *physical) +static int default_virt2phys(struct target_s *target, uint32_t virtual, uint32_t *physical) { *physical = virtual; return ERROR_OK; @@ -518,7 +520,7 @@ const char *target_get_name(struct target_s *target) return target->type->name; } -static int target_write_memory_imp(struct target_s *target, u32 address, u32 size, u32 count, uint8_t *buffer) +static int target_write_memory_imp(struct target_s *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer) { if (!target_was_examined(target)) { @@ -528,7 +530,7 @@ static int target_write_memory_imp(struct target_s *target, u32 address, u32 siz return target->type->write_memory_imp(target, address, size, count, buffer); } -static int target_read_memory_imp(struct target_s *target, u32 address, u32 size, u32 count, uint8_t *buffer) +static int target_read_memory_imp(struct target_s *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer) { if (!target_was_examined(target)) { @@ -548,7 +550,7 @@ static int target_soft_reset_halt_imp(struct target_s *target) return target->type->soft_reset_halt_imp(target); } -static int target_run_algorithm_imp(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_param, u32 entry_point, u32 exit_point, int timeout_ms, void *arch_info) +static int target_run_algorithm_imp(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_param, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info) { if (!target_was_examined(target)) { @@ -559,18 +561,18 @@ static int target_run_algorithm_imp(struct target_s *target, int num_mem_params, } int target_read_memory(struct target_s *target, - u32 address, u32 size, u32 count, uint8_t *buffer) + uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer) { return target->type->read_memory(target, address, size, count, buffer); } int target_write_memory(struct target_s *target, - u32 address, u32 size, u32 count, uint8_t *buffer) + uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer) { return target->type->write_memory(target, address, size, count, buffer); } int target_bulk_write_memory(struct target_s *target, - u32 address, u32 count, uint8_t *buffer) + uint32_t address, uint32_t count, uint8_t *buffer) { return target->type->bulk_write_memory(target, address, count, buffer); } @@ -603,7 +605,7 @@ int target_get_gdb_reg_list(struct target_s *target, return target->type->get_gdb_reg_list(target, reg_list, reg_list_size); } int target_step(struct target_s *target, - int current, u32 address, int handle_breakpoints) + int current, uint32_t address, int handle_breakpoints) { return target->type->step(target, current, address, handle_breakpoints); } @@ -612,7 +614,7 @@ int target_step(struct target_s *target, int target_run_algorithm(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_param, - u32 entry_point, u32 exit_point, + uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info) { return target->type->run_algorithm(target, @@ -683,9 +685,9 @@ int target_init(struct command_context_s *cmd_ctx) if (all_targets) { - if((retval = target_register_user_commands(cmd_ctx)) != ERROR_OK) + if ((retval = target_register_user_commands(cmd_ctx)) != ERROR_OK) return retval; - 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) return retval; } @@ -904,7 +906,7 @@ int target_call_timer_callbacks_now(void) return target_call_timer_callbacks_check_time(0); } -int target_alloc_working_area(struct target_s *target, u32 size, working_area_t **area) +int target_alloc_working_area(struct target_s *target, uint32_t size, working_area_t **area) { working_area_t *c = target->working_areas; working_area_t *new_wa = NULL; @@ -932,8 +934,8 @@ int target_alloc_working_area(struct target_s *target, u32 size, working_area_t /* only allocate multiples of 4 byte */ if (size % 4) { - LOG_ERROR("BUG: code tried to allocate unaligned number of bytes, padding"); - size = CEIL(size, 4); + LOG_ERROR("BUG: code tried to allocate unaligned number of bytes (0x%08x), padding", ((unsigned)(size))); + size = (size + 3) & (~3); } /* see if there's already a matching working area */ @@ -951,8 +953,8 @@ int target_alloc_working_area(struct target_s *target, u32 size, working_area_t if (!new_wa) { working_area_t **p = &target->working_areas; - u32 first_free = target->working_area; - u32 free_size = target->working_area_size; + uint32_t first_free = target->working_area; + uint32_t free_size = target->working_area_size; LOG_DEBUG("allocating new working area"); @@ -967,7 +969,8 @@ int target_alloc_working_area(struct target_s *target, u32 size, working_area_t if (free_size < size) { - LOG_WARNING("not enough working area available(requested %d, free %d)", size, free_size); + LOG_WARNING("not enough working area available(requested %u, free %u)", + (unsigned)(size), (unsigned)(free_size)); return ERROR_TARGET_RESOURCE_NOT_AVAILABLE; } @@ -980,7 +983,7 @@ int target_alloc_working_area(struct target_s *target, u32 size, working_area_t { int retval; new_wa->backup = malloc(new_wa->size); - 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) { free(new_wa->backup); free(new_wa); @@ -1014,7 +1017,7 @@ int target_free_working_area_restore(struct target_s *target, working_area_t *ar if (restore&&target->backup_working_area) { int retval; - 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) return retval; } @@ -1096,10 +1099,11 @@ int target_arch_state(struct target_s *target) * mode respectively, otherwise data is handled as quickly as * possible */ -int target_write_buffer(struct target_s *target, u32 address, u32 size, uint8_t *buffer) +int target_write_buffer(struct target_s *target, uint32_t address, uint32_t size, uint8_t *buffer) { int retval; - LOG_DEBUG("writing buffer of %i byte at 0x%8.8x", size, address); + LOG_DEBUG("writing buffer of %i byte at 0x%8.8x", + (int)size, (unsigned)address); if (!target_was_examined(target)) { @@ -1114,7 +1118,9 @@ int target_write_buffer(struct target_s *target, u32 address, u32 size, uint8_t if ((address + size - 1) < address) { /* GDB can request this when e.g. PC is 0xfffffffc*/ - LOG_ERROR("address+size wrapped(0x%08x, 0x%08x)", address, size); + LOG_ERROR("address+size wrapped(0x%08x, 0x%08x)", + (unsigned)address, + (unsigned)size); return ERROR_FAIL; } @@ -1126,7 +1132,7 @@ int target_write_buffer(struct target_s *target, u32 address, u32 size, uint8_t /* handle unaligned head bytes */ if (address % 4) { - u32 unaligned = 4 - (address % 4); + uint32_t unaligned = 4 - (address % 4); if (unaligned > size) unaligned = size; @@ -1175,10 +1181,11 @@ int target_write_buffer(struct target_s *target, u32 address, u32 size, uint8_t * mode respectively, otherwise data is handled as quickly as * possible */ -int target_read_buffer(struct target_s *target, u32 address, u32 size, uint8_t *buffer) +int target_read_buffer(struct target_s *target, uint32_t address, uint32_t size, uint8_t *buffer) { int retval; - LOG_DEBUG("reading buffer of %i byte at 0x%8.8x", size, address); + LOG_DEBUG("reading buffer of %i byte at 0x%8.8x", + (int)size, (unsigned)address); if (!target_was_examined(target)) { @@ -1193,7 +1200,9 @@ int target_read_buffer(struct target_s *target, u32 address, u32 size, uint8_t * if ((address + size - 1) < address) { /* GDB can request this when e.g. PC is 0xfffffffc*/ - LOG_ERROR("address+size wrapped(0x%08x, 0x%08x)", address, size); + LOG_ERROR("address+size wrapped(0x%08" PRIx32 ", 0x%08" PRIx32 ")", + address, + size); return ERROR_FAIL; } @@ -1205,7 +1214,7 @@ int target_read_buffer(struct target_s *target, u32 address, u32 size, uint8_t * /* handle unaligned head bytes */ if (address % 4) { - u32 unaligned = 4 - (address % 4); + uint32_t unaligned = 4 - (address % 4); if (unaligned > size) unaligned = size; @@ -1241,12 +1250,12 @@ int target_read_buffer(struct target_s *target, u32 address, u32 size, uint8_t * return ERROR_OK; } -int target_checksum_memory(struct target_s *target, u32 address, u32 size, u32* crc) +int target_checksum_memory(struct target_s *target, uint32_t address, uint32_t size, uint32_t* crc) { uint8_t *buffer; int retval; - u32 i; - u32 checksum = 0; + uint32_t i; + uint32_t checksum = 0; if (!target_was_examined(target)) { LOG_ERROR("Target not examined yet"); @@ -1259,7 +1268,7 @@ int target_checksum_memory(struct target_s *target, u32 address, u32 size, u32* buffer = malloc(size); if (buffer == NULL) { - LOG_ERROR("error allocating buffer for section (%d bytes)", size); + LOG_ERROR("error allocating buffer for section (%d bytes)", (int)size); return ERROR_INVALID_ARGUMENTS; } retval = target_read_buffer(target, address, size, buffer); @@ -1270,11 +1279,11 @@ int target_checksum_memory(struct target_s *target, u32 address, u32 size, u32* } /* convert to target endianess */ - for (i = 0; i < (size/sizeof(u32)); i++) + for (i = 0; i < (size/sizeof(uint32_t)); i++) { - u32 target_data; - target_data = target_buffer_get_u32(target, &buffer[i*sizeof(u32)]); - target_buffer_set_u32(target, &buffer[i*sizeof(u32)], target_data); + uint32_t target_data; + target_data = target_buffer_get_u32(target, &buffer[i*sizeof(uint32_t)]); + target_buffer_set_u32(target, &buffer[i*sizeof(uint32_t)], target_data); } retval = image_calculate_checksum( buffer, size, &checksum ); @@ -1286,7 +1295,7 @@ int target_checksum_memory(struct target_s *target, u32 address, u32 size, u32* return retval; } -int target_blank_check_memory(struct target_s *target, u32 address, u32 size, u32* blank) +int target_blank_check_memory(struct target_s *target, uint32_t address, uint32_t size, uint32_t* blank) { int retval; if (!target_was_examined(target)) @@ -1303,7 +1312,7 @@ int target_blank_check_memory(struct target_s *target, u32 address, u32 size, u3 return retval; } -int target_read_u32(struct target_s *target, u32 address, u32 *value) +int target_read_u32(struct target_s *target, uint32_t address, uint32_t *value) { uint8_t value_buf[4]; if (!target_was_examined(target)) @@ -1317,18 +1326,21 @@ int target_read_u32(struct target_s *target, u32 address, u32 *value) if (retval == ERROR_OK) { *value = target_buffer_get_u32(target, value_buf); - LOG_DEBUG("address: 0x%8.8x, value: 0x%8.8x", address, *value); + LOG_DEBUG("address: 0x%8.8" PRIx32 ", value: 0x%8.8" PRIx32 "", + address, + *value); } else { *value = 0x0; - LOG_DEBUG("address: 0x%8.8x failed", address); + LOG_DEBUG("address: 0x%8.8" PRIx32 " failed", + address); } return retval; } -int target_read_u16(struct target_s *target, u32 address, u16 *value) +int target_read_u16(struct target_s *target, uint32_t address, uint16_t *value) { uint8_t value_buf[2]; if (!target_was_examined(target)) @@ -1342,18 +1354,21 @@ int target_read_u16(struct target_s *target, u32 address, u16 *value) if (retval == ERROR_OK) { *value = target_buffer_get_u16(target, value_buf); - LOG_DEBUG("address: 0x%8.8x, value: 0x%4.4x", address, *value); + LOG_DEBUG("address: 0x%8.8" PRIx32 ", value: 0x%4.4x", + address, + *value); } else { *value = 0x0; - LOG_DEBUG("address: 0x%8.8x failed", address); + LOG_DEBUG("address: 0x%8.8" PRIx32 " failed", + address); } return retval; } -int target_read_u8(struct target_s *target, u32 address, uint8_t *value) +int target_read_u8(struct target_s *target, uint32_t address, uint8_t *value) { int retval = target_read_memory(target, address, 1, 1, value); if (!target_was_examined(target)) @@ -1364,18 +1379,21 @@ int target_read_u8(struct target_s *target, u32 address, uint8_t *value) if (retval == ERROR_OK) { - LOG_DEBUG("address: 0x%8.8x, value: 0x%2.2x", address, *value); + LOG_DEBUG("address: 0x%8.8" PRIx32 ", value: 0x%2.2x", + address, + *value); } else { *value = 0x0; - LOG_DEBUG("address: 0x%8.8x failed", address); + LOG_DEBUG("address: 0x%8.8" PRIx32 " failed", + address); } return retval; } -int target_write_u32(struct target_s *target, u32 address, u32 value) +int target_write_u32(struct target_s *target, uint32_t address, uint32_t value) { int retval; uint8_t value_buf[4]; @@ -1385,7 +1403,9 @@ int target_write_u32(struct target_s *target, u32 address, u32 value) return ERROR_FAIL; } - LOG_DEBUG("address: 0x%8.8x, value: 0x%8.8x", address, value); + LOG_DEBUG("address: 0x%8.8" PRIx32 ", value: 0x%8.8" PRIx32 "", + address, + value); target_buffer_set_u32(target, value_buf, value); if ((retval = target_write_memory(target, address, 4, 1, value_buf)) != ERROR_OK) @@ -1396,7 +1416,7 @@ int target_write_u32(struct target_s *target, u32 address, u32 value) return retval; } -int target_write_u16(struct target_s *target, u32 address, u16 value) +int target_write_u16(struct target_s *target, uint32_t address, uint16_t value) { int retval; uint8_t value_buf[2]; @@ -1406,7 +1426,9 @@ int target_write_u16(struct target_s *target, u32 address, u16 value) return ERROR_FAIL; } - LOG_DEBUG("address: 0x%8.8x, value: 0x%8.8x", address, value); + LOG_DEBUG("address: 0x%8.8" PRIx32 ", value: 0x%8.8x", + address, + value); target_buffer_set_u16(target, value_buf, value); if ((retval = target_write_memory(target, address, 2, 1, value_buf)) != ERROR_OK) @@ -1417,7 +1439,7 @@ int target_write_u16(struct target_s *target, u32 address, u16 value) return retval; } -int target_write_u8(struct target_s *target, u32 address, uint8_t value) +int target_write_u8(struct target_s *target, uint32_t address, uint8_t value) { int retval; if (!target_was_examined(target)) @@ -1426,7 +1448,8 @@ int target_write_u8(struct target_s *target, u32 address, uint8_t value) return ERROR_FAIL; } - LOG_DEBUG("address: 0x%8.8x, value: 0x%2.2x", address, value); + LOG_DEBUG("address: 0x%8.8" PRIx32 ", value: 0x%2.2x", + address, value); if ((retval = target_write_memory(target, address, 1, 1, &value)) != ERROR_OK) { @@ -1481,9 +1504,9 @@ int target_register_user_commands(struct command_context_s *cmd_ctx) register_command(cmd_ctx, NULL, "verify_image", handle_verify_image_command, COMMAND_EXEC, "verify_image [offset] [type]"); register_command(cmd_ctx, NULL, "test_image", handle_test_image_command, COMMAND_EXEC, "test_image [offset] [type]"); - if((retval = target_request_register_commands(cmd_ctx)) != ERROR_OK) + if ((retval = target_request_register_commands(cmd_ctx)) != ERROR_OK) return retval; - if((retval = trace_register_commands(cmd_ctx)) != ERROR_OK) + if ((retval = trace_register_commands(cmd_ctx)) != ERROR_OK) return retval; return retval; @@ -1680,7 +1703,7 @@ int handle_target(void *priv) if (!powerDropout && !srstAsserted) { /* polling may fail silently until the target has been examined */ - if((retval = target_poll(target)) != ERROR_OK) + if ((retval = target_poll(target)) != ERROR_OK) return retval; } } @@ -1711,7 +1734,13 @@ static int handle_reg_command(struct command_context_s *cmd_ctx, char *cmd, char for (i = 0; i < cache->num_regs; i++) { value = buf_to_str(cache->reg_list[i].value, cache->reg_list[i].size, 16); - command_print(cmd_ctx, "(%i) %s (/%i): 0x%s (dirty: %i, valid: %i)", count++, cache->reg_list[i].name, cache->reg_list[i].size, value, cache->reg_list[i].dirty, cache->reg_list[i].valid); + command_print(cmd_ctx, "(%i) %s (/%i): 0x%s (dirty: %i, valid: %i)", + count++, + cache->reg_list[i].name, + (int)(cache->reg_list[i].size), + value, + cache->reg_list[i].dirty, + cache->reg_list[i].valid); free(value); } cache = cache->next; @@ -1774,7 +1803,7 @@ static int handle_reg_command(struct command_context_s *cmd_ctx, char *cmd, char arch_type->get(reg); } value = buf_to_str(reg->value, reg->size, 16); - command_print(cmd_ctx, "%s (/%i): 0x%s", reg->name, reg->size, value); + command_print(cmd_ctx, "%s (/%i): 0x%s", reg->name, (int)(reg->size), value); free(value); return ERROR_OK; } @@ -1789,7 +1818,7 @@ static int handle_reg_command(struct command_context_s *cmd_ctx, char *cmd, char arch_type->set(reg, buf); value = buf_to_str(reg->value, reg->size, 16); - command_print(cmd_ctx, "%s (/%i): 0x%s", reg->name, reg->size, value); + command_print(cmd_ctx, "%s (/%i): 0x%s", reg->name, (int)(reg->size), value); free(value); free(buf); @@ -1954,7 +1983,7 @@ static int handle_reset_command(struct command_context_s *cmd_ctx, char *cmd, ch { const Jim_Nvp *n; n = Jim_Nvp_name2value_simple( nvp_reset_modes, args[0] ); - if( (n->name == NULL) || (n->value == RESET_UNKNOWN) ){ + if ( (n->name == NULL) || (n->value == RESET_UNKNOWN) ){ return ERROR_COMMAND_SYNTAX_ERROR; } reset_mode = n->value; @@ -1967,6 +1996,7 @@ static int handle_reset_command(struct command_context_s *cmd_ctx, char *cmd, ch static int handle_resume_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { + int current = 1; if (argc > 1) return ERROR_COMMAND_SYNTAX_ERROR; @@ -1976,15 +2006,16 @@ static int handle_resume_command(struct command_context_s *cmd_ctx, char *cmd, c /* with no args, resume from current pc, addr = 0, * with one arguments, addr = args[0], * handle breakpoints, not debugging */ - u32 addr = 0; + uint32_t addr = 0; if (argc == 1) { int retval = parse_u32(args[0], &addr); if (ERROR_OK != retval) return retval; + current = 0; } - 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) @@ -1997,7 +2028,7 @@ static int handle_step_command(struct command_context_s *cmd_ctx, char *cmd, cha /* with no args, step from current pc, addr = 0, * with one argument addr = args[0], * handle breakpoints, debugging */ - u32 addr = 0; + uint32_t addr = 0; if (argc == 1) { int retval = parse_u32(args[0], &addr); @@ -2010,7 +2041,7 @@ static int handle_step_command(struct command_context_s *cmd_ctx, char *cmd, cha } static void handle_md_output(struct command_context_s *cmd_ctx, - struct target_s *target, u32 address, unsigned size, + struct target_s *target, uint32_t address, unsigned size, unsigned count, const uint8_t *buffer) { const unsigned line_bytecnt = 32; @@ -2035,10 +2066,11 @@ static void handle_md_output(struct command_context_s *cmd_ctx, { output_len += snprintf(output + output_len, sizeof(output) - output_len, - "0x%8.8x: ", address + (i*size)); + "0x%8.8x: ", + (unsigned)(address + (i*size))); } - u32 value=0; + uint32_t value=0; const uint8_t *value_ptr = buffer + i * size; switch (size) { case 4: value = target_buffer_get_u32(target, value_ptr); break; @@ -2070,7 +2102,7 @@ static int handle_md_command(struct command_context_s *cmd_ctx, char *cmd, char default: return ERROR_COMMAND_SYNTAX_ERROR; } - u32 address; + uint32_t address; int retval = parse_u32(args[0], &address); if (ERROR_OK != retval) return retval; @@ -2101,12 +2133,12 @@ static int handle_mw_command(struct command_context_s *cmd_ctx, char *cmd, char if ((argc < 2) || (argc > 3)) return ERROR_COMMAND_SYNTAX_ERROR; - u32 address; + uint32_t address; int retval = parse_u32(args[0], &address); if (ERROR_OK != retval) return retval; - u32 value; + uint32_t value; retval = parse_u32(args[1], &value); if (ERROR_OK != retval) return retval; @@ -2153,7 +2185,7 @@ static int handle_mw_command(struct command_context_s *cmd_ctx, char *cmd, char } static int parse_load_image_command_args(char **args, int argc, - image_t *image, u32 *min_address, u32 *max_address) + image_t *image, uint32_t *min_address, uint32_t *max_address) { if (argc < 1 || argc > 5) return ERROR_COMMAND_SYNTAX_ERROR; @@ -2162,7 +2194,7 @@ static int parse_load_image_command_args(char **args, int argc, * default to 0x0 (i.e. don't relocate) */ if (argc >= 2) { - u32 addr; + uint32_t addr; int retval = parse_u32(args[1], &addr); if (ERROR_OK != retval) return ERROR_COMMAND_SYNTAX_ERROR; @@ -2198,10 +2230,10 @@ static int parse_load_image_command_args(char **args, int argc, static int handle_load_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { uint8_t *buffer; - u32 buf_cnt; - u32 image_size; - u32 min_address = 0; - u32 max_address = 0xffffffff; + uint32_t buf_cnt; + uint32_t image_size; + uint32_t min_address = 0; + uint32_t max_address = 0xffffffff; int i; int retvaltemp; @@ -2230,7 +2262,9 @@ static int handle_load_image_command(struct command_context_s *cmd_ctx, char *cm buffer = malloc(image.sections[i].size); if (buffer == NULL) { - command_print(cmd_ctx, "error allocating buffer for section (%d bytes)", image.sections[i].size); + command_print(cmd_ctx, + "error allocating buffer for section (%d bytes)", + (int)(image.sections[i].size)); break; } @@ -2240,8 +2274,8 @@ static int handle_load_image_command(struct command_context_s *cmd_ctx, char *cm break; } - u32 offset=0; - u32 length=buf_cnt; + uint32_t offset=0; + uint32_t length=buf_cnt; /* DANGER!!! beware of unsigned comparision here!!! */ @@ -2266,13 +2300,15 @@ static int handle_load_image_command(struct command_context_s *cmd_ctx, char *cm break; } image_size += length; - command_print(cmd_ctx, "%u byte written at address 0x%8.8x", length, image.sections[i].base_address+offset); + command_print(cmd_ctx, "%u byte written at address 0x%8.8" PRIx32 "", + (unsigned int)length, + image.sections[i].base_address+offset); } free(buffer); } - if((retvaltemp = duration_stop_measure(&duration, &duration_text)) != ERROR_OK) + if ((retvaltemp = duration_stop_measure(&duration, &duration_text)) != ERROR_OK) { image_close(&image); return retvaltemp; @@ -2280,7 +2316,9 @@ static int handle_load_image_command(struct command_context_s *cmd_ctx, char *cm if (retval==ERROR_OK) { - command_print(cmd_ctx, "downloaded %u byte in %s", image_size, duration_text); + command_print(cmd_ctx, "downloaded %u byte in %s", + (unsigned int)image_size, + duration_text); } free(duration_text); @@ -2308,12 +2346,12 @@ static int handle_dump_image_command(struct command_context_s *cmd_ctx, char *cm return ERROR_OK; } - u32 address; + uint32_t address; int retval = parse_u32(args[1], &address); if (ERROR_OK != retval) return retval; - u32 size; + uint32_t size; retval = parse_u32(args[2], &size); if (ERROR_OK != retval) return retval; @@ -2327,8 +2365,8 @@ static int handle_dump_image_command(struct command_context_s *cmd_ctx, char *cm while (size > 0) { - u32 size_written; - u32 this_run_size = (size > 560) ? 560 : size; + uint32_t size_written; + uint32_t this_run_size = (size > 560) ? 560 : size; retval = target_read_buffer(target, address, this_run_size, buffer); if (retval != ERROR_OK) @@ -2346,10 +2384,10 @@ static int handle_dump_image_command(struct command_context_s *cmd_ctx, char *cm address += this_run_size; } - if((retvaltemp = fileio_close(&fileio)) != ERROR_OK) + if ((retvaltemp = fileio_close(&fileio)) != ERROR_OK) return retvaltemp; - if((retvaltemp = duration_stop_measure(&duration, &duration_text)) != ERROR_OK) + if ((retvaltemp = duration_stop_measure(&duration, &duration_text)) != ERROR_OK) return retvaltemp; if (retval==ERROR_OK) @@ -2365,12 +2403,12 @@ static int handle_dump_image_command(struct command_context_s *cmd_ctx, char *cm static int handle_verify_image_command_internal(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, int verify) { uint8_t *buffer; - u32 buf_cnt; - u32 image_size; + uint32_t buf_cnt; + uint32_t image_size; int i; int retval, retvaltemp; - u32 checksum = 0; - u32 mem_checksum = 0; + uint32_t checksum = 0; + uint32_t mem_checksum = 0; image_t image; @@ -2394,7 +2432,7 @@ static int handle_verify_image_command_internal(struct command_context_s *cmd_ct if (argc >= 2) { - u32 addr; + uint32_t addr; retval = parse_u32(args[1], &addr); if (ERROR_OK != retval) return ERROR_COMMAND_SYNTAX_ERROR; @@ -2421,7 +2459,9 @@ static int handle_verify_image_command_internal(struct command_context_s *cmd_ct buffer = malloc(image.sections[i].size); if (buffer == NULL) { - command_print(cmd_ctx, "error allocating buffer for section (%d bytes)", image.sections[i].size); + command_print(cmd_ctx, + "error allocating buffer for section (%d bytes)", + (int)(image.sections[i].size)); break; } if ((retval = image_read_section(&image, i, 0x0, image.sections[i].size, buffer, &buf_cnt)) != ERROR_OK) @@ -2436,13 +2476,13 @@ static int handle_verify_image_command_internal(struct command_context_s *cmd_ct image_calculate_checksum( buffer, buf_cnt, &checksum ); retval = target_checksum_memory(target, image.sections[i].base_address, buf_cnt, &mem_checksum); - if( retval != ERROR_OK ) + if ( retval != ERROR_OK ) { free(buffer); break; } - if( checksum != mem_checksum ) + if ( checksum != mem_checksum ) { /* failed crc checksum, fall back to a binary compare */ uint8_t *data; @@ -2462,12 +2502,16 @@ static int handle_verify_image_command_internal(struct command_context_s *cmd_ct retval = target_read_memory(target, image.sections[i].base_address, size, count, data); if (retval == ERROR_OK) { - u32 t; + uint32_t t; for (t = 0; t < buf_cnt; t++) { if (data[t] != buffer[t]) { - command_print(cmd_ctx, "Verify operation failed address 0x%08x. Was 0x%02x instead of 0x%02x\n", t + image.sections[i].base_address, data[t], buffer[t]); + command_print(cmd_ctx, + "Verify operation failed address 0x%08x. Was 0x%02x instead of 0x%02x\n", + (unsigned)(t + image.sections[i].base_address), + data[t], + buffer[t]); free(data); free(buffer); retval=ERROR_FAIL; @@ -2484,7 +2528,9 @@ static int handle_verify_image_command_internal(struct command_context_s *cmd_ct } } else { - command_print(cmd_ctx, "address 0x%08x length 0x%08x", image.sections[i].base_address, buf_cnt); + command_print(cmd_ctx, "address 0x%08" PRIx32 " length 0x%08" PRIx32 "", + image.sections[i].base_address, + buf_cnt); } free(buffer); @@ -2492,7 +2538,7 @@ static int handle_verify_image_command_internal(struct command_context_s *cmd_ct } done: - if((retvaltemp = duration_stop_measure(&duration, &duration_text)) != ERROR_OK) + if ((retvaltemp = duration_stop_measure(&duration, &duration_text)) != ERROR_OK) { image_close(&image); return retvaltemp; @@ -2500,7 +2546,9 @@ done: if (retval==ERROR_OK) { - command_print(cmd_ctx, "verified %u bytes in %s", image_size, duration_text); + command_print(cmd_ctx, "verified %u bytes in %s", + (unsigned int)image_size, + duration_text); } free(duration_text); @@ -2529,15 +2577,17 @@ static int handle_bp_command_list(struct command_context_s *cmd_ctx) { char* buf = buf_to_str(breakpoint->orig_instr, breakpoint->length, 16); - command_print(cmd_ctx, "0x%8.8x, 0x%x, %i, 0x%s", - breakpoint->address, breakpoint->length, + command_print(cmd_ctx, "0x%8.8" PRIx32 ", 0x%x, %i, 0x%s", + breakpoint->address, + breakpoint->length, breakpoint->set, buf); free(buf); } else { - command_print(cmd_ctx, "0x%8.8x, 0x%x, %i", - breakpoint->address, breakpoint->length, breakpoint->set); + command_print(cmd_ctx, "0x%8.8" PRIx32 ", 0x%x, %i", + breakpoint->address, + breakpoint->length, breakpoint->set); } breakpoint = breakpoint->next; @@ -2546,12 +2596,12 @@ static int handle_bp_command_list(struct command_context_s *cmd_ctx) } static int handle_bp_command_set(struct command_context_s *cmd_ctx, - u32 addr, u32 length, int hw) + uint32_t addr, uint32_t length, int hw) { target_t *target = get_current_target(cmd_ctx); int retval = breakpoint_add(target, addr, length, hw); if (ERROR_OK == retval) - command_print(cmd_ctx, "breakpoint set at 0x%8.8x", addr); + command_print(cmd_ctx, "breakpoint set at 0x%8.8" PRIx32 "", addr); else LOG_ERROR("Failure setting breakpoint"); return retval; @@ -2569,12 +2619,12 @@ static int handle_bp_command(struct command_context_s *cmd_ctx, return ERROR_COMMAND_SYNTAX_ERROR; } - u32 addr; + uint32_t addr; int retval = parse_u32(args[0], &addr); if (ERROR_OK != retval) return retval; - u32 length; + uint32_t length; retval = parse_u32(args[1], &length); if (ERROR_OK != retval) return retval; @@ -2596,7 +2646,7 @@ static int handle_rbp_command(struct command_context_s *cmd_ctx, char *cmd, char if (argc != 1) return ERROR_COMMAND_SYNTAX_ERROR; - u32 addr; + uint32_t addr; int retval = parse_u32(args[0], &addr); if (ERROR_OK != retval) return retval; @@ -2617,17 +2667,23 @@ static int handle_wp_command(struct command_context_s *cmd_ctx, char *cmd, char while (watchpoint) { - command_print(cmd_ctx, "address: 0x%8.8x, len: 0x%8.8x, r/w/a: %i, value: 0x%8.8x, mask: 0x%8.8x", watchpoint->address, watchpoint->length, watchpoint->rw, watchpoint->value, watchpoint->mask); + command_print(cmd_ctx, + "address: 0x%8.8" PRIx32 ", len: 0x%8.8x, r/w/a: %i, value: 0x%8.8" PRIx32 ", mask: 0x%8.8" PRIx32 "", + watchpoint->address, + watchpoint->length, + (int)(watchpoint->rw), + watchpoint->value, + watchpoint->mask); watchpoint = watchpoint->next; } return ERROR_OK; } enum watchpoint_rw type = WPT_ACCESS; - u32 addr = 0; - u32 length = 0; - u32 data_value = 0x0; - u32 data_mask = 0xffffffff; + uint32_t addr = 0; + uint32_t length = 0; + uint32_t data_value = 0x0; + uint32_t data_mask = 0xffffffff; int retval; switch (argc) @@ -2686,7 +2742,7 @@ static int handle_rwp_command(struct command_context_s *cmd_ctx, char *cmd, char if (argc != 1) return ERROR_COMMAND_SYNTAX_ERROR; - u32 addr; + uint32_t addr; int retval = parse_u32(args[0], &addr); if (ERROR_OK != retval) return retval; @@ -2710,16 +2766,16 @@ static int handle_virt2phys_command(command_context_t *cmd_ctx, if (argc != 1) return ERROR_COMMAND_SYNTAX_ERROR; - u32 va; + uint32_t va; int retval = parse_u32(args[0], &va); if (ERROR_OK != retval) return retval; - u32 pa; + uint32_t pa; target_t *target = get_current_target(cmd_ctx); retval = target->type->virt2phys(target, va, &pa); if (retval == ERROR_OK) - command_print(cmd_ctx, "Physical address 0x%08x", pa); + command_print(cmd_ctx, "Physical address 0x%08" PRIx32 "", pa); return retval; } @@ -2748,9 +2804,9 @@ static void writeString(FILE *f, char *s) } /* Dump a gmon.out histogram file. */ -static void writeGmon(u32 *samples, u32 sampleNum, char *filename) +static void writeGmon(uint32_t *samples, uint32_t sampleNum, char *filename) { - u32 i; + uint32_t i; FILE *f=fopen(filename, "w"); if (f==NULL) return; @@ -2764,8 +2820,8 @@ static void writeGmon(u32 *samples, u32 sampleNum, char *filename) writeData(f, &zero, 1); /* figure out bucket size */ - u32 min=samples[0]; - u32 max=samples[0]; + uint32_t min=samples[0]; + uint32_t max=samples[0]; for (i=0; isamples[i]) @@ -2780,8 +2836,8 @@ static void writeGmon(u32 *samples, u32 sampleNum, char *filename) int addressSpace=(max-min+1); - static const u32 maxBuckets = 256 * 1024; /* maximum buckets. */ - u32 length = addressSpace; + static const uint32_t maxBuckets = 256 * 1024; /* maximum buckets. */ + uint32_t length = addressSpace; if (length > maxBuckets) { length=maxBuckets; @@ -2795,7 +2851,7 @@ static void writeGmon(u32 *samples, u32 sampleNum, char *filename) memset(buckets, 0, sizeof(int)*length); for (i=0; istate == TARGET_HALTED) { - u32 t=*((u32 *)reg->value); + uint32_t t=*((uint32_t *)reg->value); samples[numSamples++]=t; retval = target_resume(target, 1, 0, 0, 0); /* current pc, addr = 0, do not handle breakpoints, not debugging */ target_poll(target); @@ -2882,7 +2938,7 @@ static int handle_profile_command(struct command_context_s *cmd_ctx, char *cmd, } else if (target->state == TARGET_RUNNING) { /* We want to quickly sample the PC. */ - if((retval = target_halt(target)) != ERROR_OK) + if ((retval = target_halt(target)) != ERROR_OK) { free(samples); return retval; @@ -2902,7 +2958,7 @@ static int handle_profile_command(struct command_context_s *cmd_ctx, char *cmd, 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((retval = target_poll(target)) != ERROR_OK) + if ((retval = target_poll(target)) != ERROR_OK) { free(samples); return retval; @@ -2911,7 +2967,7 @@ static int handle_profile_command(struct command_context_s *cmd_ctx, char *cmd, { target_resume(target, 1, 0, 0, 0); /* current pc, addr = 0, do not handle breakpoints, not debugging */ } - if((retval = target_poll(target)) != ERROR_OK) + if ((retval = target_poll(target)) != ERROR_OK) { free(samples); return retval; @@ -2926,7 +2982,7 @@ static int handle_profile_command(struct command_context_s *cmd_ctx, char *cmd, return ERROR_OK; } -static int new_int_array_element(Jim_Interp * interp, const char *varname, int idx, u32 val) +static int new_int_array_element(Jim_Interp * interp, const char *varname, int idx, uint32_t val) { char *namebuf; Jim_Obj *nameObjPtr, *valObjPtr; @@ -2978,15 +3034,15 @@ static int jim_mem2array(Jim_Interp *interp, int argc, Jim_Obj *const *argv) static int target_mem2array(Jim_Interp *interp, target_t *target, int argc, Jim_Obj *const *argv) { long l; - u32 width; + uint32_t width; int len; - u32 addr; - u32 count; - u32 v; + uint32_t addr; + uint32_t count; + uint32_t v; const char *varname; uint8_t buffer[4096]; int n, e, retval; - u32 i; + uint32_t i; /* argv[1] = name of array to receive the data * argv[2] = desired width @@ -3055,7 +3111,9 @@ static int target_mem2array(Jim_Interp *interp, target_t *target, int argc, Jim_ } else { char buf[100]; Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); - sprintf(buf, "mem2array address: 0x%08x is not aligned for %d byte reads", addr, width); + sprintf(buf, "mem2array address: 0x%08" PRIx32 " is not aligned for %" PRId32 " byte reads", + addr, + width); Jim_AppendStrings(interp, Jim_GetResult(interp), buf , NULL); return JIM_ERR; } @@ -3077,7 +3135,10 @@ static int target_mem2array(Jim_Interp *interp, target_t *target, int argc, Jim_ retval = target_read_memory( target, addr, width, count, buffer ); if (retval != ERROR_OK) { /* BOO !*/ - LOG_ERROR("mem2array: Read @ 0x%08x, w=%d, cnt=%d, failed", addr, width, count); + LOG_ERROR("mem2array: Read @ 0x%08x, w=%d, cnt=%d, failed", + (unsigned int)addr, + (int)width, + (int)count); Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); Jim_AppendStrings(interp, Jim_GetResult(interp), "mem2array: cannot read memory", NULL); e = JIM_ERR; @@ -3107,7 +3168,7 @@ static int target_mem2array(Jim_Interp *interp, target_t *target, int argc, Jim_ return JIM_OK; } -static int get_int_array_element(Jim_Interp * interp, const char *varname, int idx, u32 *val) +static int get_int_array_element(Jim_Interp * interp, const char *varname, int idx, uint32_t *val) { char *namebuf; Jim_Obj *nameObjPtr, *valObjPtr; @@ -3160,15 +3221,15 @@ static int jim_array2mem(Jim_Interp *interp, int argc, Jim_Obj *const *argv) static int target_array2mem(Jim_Interp *interp, target_t *target, int argc, Jim_Obj *const *argv) { long l; - u32 width; + uint32_t width; int len; - u32 addr; - u32 count; - u32 v; + uint32_t addr; + uint32_t count; + uint32_t v; const char *varname; uint8_t buffer[4096]; int n, e, retval; - u32 i; + uint32_t i; /* argv[1] = name of array to get the data * argv[2] = desired width @@ -3237,7 +3298,9 @@ static int target_array2mem(Jim_Interp *interp, target_t *target, int argc, Jim_ } else { char buf[100]; Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); - sprintf(buf, "array2mem address: 0x%08x is not aligned for %d byte reads", addr, width); + sprintf(buf, "array2mem address: 0x%08x is not aligned for %d byte reads", + (unsigned int)addr, + (int)width); Jim_AppendStrings(interp, Jim_GetResult(interp), buf , NULL); return JIM_ERR; } @@ -3276,7 +3339,10 @@ static int target_array2mem(Jim_Interp *interp, target_t *target, int argc, Jim_ retval = target_write_memory(target, addr, width, count, buffer); if (retval != ERROR_OK) { /* BOO !*/ - LOG_ERROR("array2mem: Write @ 0x%08x, w=%d, cnt=%d, failed", addr, width, count); + LOG_ERROR("array2mem: Write @ 0x%08x, w=%d, cnt=%d, failed", + (unsigned int)addr, + (int)width, + (int)count); Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); Jim_AppendStrings(interp, Jim_GetResult(interp), "array2mem: cannot read memory", NULL); e = JIM_ERR; @@ -3294,8 +3360,8 @@ void target_all_handle_event( enum target_event e ) target_t *target; LOG_DEBUG( "**all*targets: event: %d, %s", - e, - Jim_Nvp_value2name_simple( nvp_target_event, e )->name ); + (int)e, + Jim_Nvp_value2name_simple( nvp_target_event, e )->name ); target = all_targets; while (target){ @@ -3313,7 +3379,7 @@ void target_handle_event( target_t *target, enum target_event e ) done = 0; while( teap ){ - if( teap->event == e ){ + if ( teap->event == e ){ done = 1; LOG_DEBUG( "target: (%d) %s (%s) event: %d (%s) action: %s\n", target->target_number, @@ -3329,7 +3395,7 @@ void target_handle_event( target_t *target, enum target_event e ) } teap = teap->next; } - if( !done ){ + if ( !done ){ LOG_DEBUG( "event: %d %s - no action", e, Jim_Nvp_value2name_simple( nvp_target_event, e )->name ); @@ -3375,34 +3441,34 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) Jim_SetEmptyResult( goi->interp ); /* Jim_GetOpt_Debug( goi ); */ - if( target->type->target_jim_configure ){ + if ( target->type->target_jim_configure ){ /* target defines a configure function */ /* target gets first dibs on parameters */ e = (*(target->type->target_jim_configure))( target, goi ); - if( e == JIM_OK ){ + if ( e == JIM_OK ){ /* more? */ continue; } - if( e == JIM_ERR ){ + if ( e == JIM_ERR ){ /* An error */ return e; } /* otherwise we 'continue' below */ } e = Jim_GetOpt_Nvp( goi, nvp_config_opts, &n ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ Jim_GetOpt_NvpUnknown( goi, nvp_config_opts, 0 ); return e; } switch( n->value ){ case TCFG_TYPE: /* not setable */ - if( goi->isconfigure ){ + if ( goi->isconfigure ){ Jim_SetResult_sprintf( goi->interp, "not setable: %s", n->name ); return JIM_ERR; } else { no_params: - if( goi->argc != 0 ){ + if ( goi->argc != 0 ){ Jim_WrongNumArgs( goi->interp, goi->argc, goi->argv, "NO PARAMS"); return JIM_ERR; } @@ -3411,24 +3477,24 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) /* loop for more */ break; case TCFG_EVENT: - if( goi->argc == 0 ){ + if ( goi->argc == 0 ){ Jim_WrongNumArgs( goi->interp, goi->argc, goi->argv, "-event ?event-name? ..."); return JIM_ERR; } e = Jim_GetOpt_Nvp( goi, nvp_target_event, &n ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ Jim_GetOpt_NvpUnknown( goi, nvp_target_event, 1 ); return e; } - if( goi->isconfigure ){ - if( goi->argc != 1 ){ + if ( goi->isconfigure ){ + if ( goi->argc != 1 ){ Jim_WrongNumArgs( goi->interp, goi->argc, goi->argv, "-event ?event-name? ?EVENT-BODY?"); return JIM_ERR; } } else { - if( goi->argc != 0 ){ + if ( goi->argc != 0 ){ Jim_WrongNumArgs(goi->interp, goi->argc, goi->argv, "-event ?event-name?"); return JIM_ERR; } @@ -3440,20 +3506,20 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) teap = target->event_action; /* replace existing? */ while( teap ){ - if( teap->event == (enum target_event)n->value ){ + if ( teap->event == (enum target_event)n->value ){ break; } teap = teap->next; } - if( goi->isconfigure ){ - if( teap == NULL ){ + if ( goi->isconfigure ){ + if ( teap == NULL ){ /* create new */ teap = calloc( 1, sizeof(*teap) ); } teap->event = n->value; Jim_GetOpt_Obj( goi, &o ); - if( teap->body ){ + if ( teap->body ){ Jim_DecrRefCount( interp, teap->body ); } teap->body = Jim_DuplicateObj( goi->interp, o ); @@ -3475,7 +3541,7 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) Jim_SetEmptyResult(goi->interp); } else { /* get */ - if( teap == NULL ){ + if ( teap == NULL ){ Jim_SetEmptyResult( goi->interp ); } else { Jim_SetResult( goi->interp, Jim_DuplicateObj( goi->interp, teap->body ) ); @@ -3486,15 +3552,15 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) break; case TCFG_WORK_AREA_VIRT: - if( goi->isconfigure ){ + if ( goi->isconfigure ){ target_free_all_working_areas(target); e = Jim_GetOpt_Wide( goi, &w ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ return e; } target->working_area_virt = w; } else { - if( goi->argc != 0 ){ + if ( goi->argc != 0 ){ goto no_params; } } @@ -3503,15 +3569,15 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) break; case TCFG_WORK_AREA_PHYS: - if( goi->isconfigure ){ + if ( goi->isconfigure ){ target_free_all_working_areas(target); e = Jim_GetOpt_Wide( goi, &w ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ return e; } target->working_area_phys = w; } else { - if( goi->argc != 0 ){ + if ( goi->argc != 0 ){ goto no_params; } } @@ -3520,15 +3586,15 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) break; case TCFG_WORK_AREA_SIZE: - if( goi->isconfigure ){ + if ( goi->isconfigure ){ target_free_all_working_areas(target); e = Jim_GetOpt_Wide( goi, &w ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ return e; } target->working_area_size = w; } else { - if( goi->argc != 0 ){ + if ( goi->argc != 0 ){ goto no_params; } } @@ -3537,16 +3603,16 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) break; case TCFG_WORK_AREA_BACKUP: - if( goi->isconfigure ){ + if ( goi->isconfigure ){ target_free_all_working_areas(target); e = Jim_GetOpt_Wide( goi, &w ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ return e; } /* make this exactly 1 or 0 */ target->backup_working_area = (!!w); } else { - if( goi->argc != 0 ){ + if ( goi->argc != 0 ){ goto no_params; } } @@ -3555,20 +3621,20 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) break; case TCFG_ENDIAN: - if( goi->isconfigure ){ + if ( goi->isconfigure ){ e = Jim_GetOpt_Nvp( goi, nvp_target_endian, &n ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ Jim_GetOpt_NvpUnknown( goi, nvp_target_endian, 1 ); return e; } target->endianness = n->value; } else { - if( goi->argc != 0 ){ + if ( goi->argc != 0 ){ goto no_params; } } n = Jim_Nvp_value2name_simple( nvp_target_endian, target->endianness ); - if( n->name == NULL ){ + if ( n->name == NULL ){ target->endianness = TARGET_LITTLE_ENDIAN; n = Jim_Nvp_value2name_simple( nvp_target_endian, target->endianness ); } @@ -3577,20 +3643,20 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) break; case TCFG_VARIANT: - if( goi->isconfigure ){ - if( goi->argc < 1 ){ + if ( goi->isconfigure ){ + if ( goi->argc < 1 ){ Jim_SetResult_sprintf( goi->interp, "%s ?STRING?", n->name ); return JIM_ERR; } - if( target->variant ){ + if ( target->variant ){ free((void *)(target->variant)); } e = Jim_GetOpt_String( goi, &cp, NULL ); target->variant = strdup(cp); } else { - if( goi->argc != 0 ){ + if ( goi->argc != 0 ){ goto no_params; } } @@ -3598,22 +3664,22 @@ static int target_configure( Jim_GetOptInfo *goi, target_t *target ) /* loop for more */ break; case TCFG_CHAIN_POSITION: - if( goi->isconfigure ){ + if ( goi->isconfigure ){ Jim_Obj *o; jtag_tap_t *tap; target_free_all_working_areas(target); e = Jim_GetOpt_Obj( goi, &o ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ return e; } tap = jtag_tap_by_jim_obj( goi->interp, o ); - if( tap == NULL ){ + if ( tap == NULL ){ return JIM_ERR; } /* make this exactly 1 or 0 */ target->tap = tap; } else { - if( goi->argc != 0 ){ + if ( goi->argc != 0 ){ goto no_params; } } @@ -3690,7 +3756,7 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) /* commands here are in an NVP table */ e = Jim_GetOpt_Nvp( &goi, target_options, &n ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ Jim_GetOpt_NvpUnknown( &goi, target_options, 0 ); return e; } @@ -3699,7 +3765,7 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) switch( n->value ){ case TS_CMD_CONFIGURE: - if( goi.argc < 2 ){ + if ( goi.argc < 2 ){ Jim_WrongNumArgs( goi.interp, goi.argc, goi.argv, "missing: -option VALUE ..."); return JIM_ERR; } @@ -3707,7 +3773,7 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) return target_configure( &goi, target ); case TS_CMD_CGET: // some things take params - if( goi.argc < 1 ){ + if ( goi.argc < 1 ){ Jim_WrongNumArgs( goi.interp, 0, goi.argv, "missing: ?-option?"); return JIM_ERR; } @@ -3723,7 +3789,7 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) * argv[3] = optional count. */ - if( (goi.argc == 2) || (goi.argc == 3) ){ + if ( (goi.argc == 2) || (goi.argc == 3) ){ /* all is well */ } else { mwx_error: @@ -3732,17 +3798,17 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) } e = Jim_GetOpt_Wide( &goi, &a ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ goto mwx_error; } e = Jim_GetOpt_Wide( &goi, &b ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ goto mwx_error; } if (goi.argc == 3) { e = Jim_GetOpt_Wide( &goi, &c ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ goto mwx_error; } } else { @@ -3765,7 +3831,7 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) } for( x = 0 ; x < c ; x++ ){ e = target_write_memory( target, a, b, 1, target_buf ); - if( e != ERROR_OK ){ + if ( e != ERROR_OK ){ Jim_SetResult_sprintf( interp, "Error writing @ 0x%08x: %d\n", (int)(a), e ); return JIM_ERR; } @@ -3783,17 +3849,17 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) * argv[1] = address * argv[2] = optional count */ - if( (goi.argc == 2) || (goi.argc == 3) ){ + if ( (goi.argc == 2) || (goi.argc == 3) ){ Jim_SetResult_sprintf( goi.interp, "expected: %s ADDR [COUNT]", n->name ); return JIM_ERR; } e = Jim_GetOpt_Wide( &goi, &a ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ return JIM_ERR; } - if( goi.argc ){ + if ( goi.argc ){ e = Jim_GetOpt_Wide( &goi, &c ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ return JIM_ERR; } } else { @@ -3817,11 +3883,11 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) /* count is now in 'BYTES' */ while( c > 0 ){ y = c; - if( y > 16 ){ + if ( y > 16 ){ y = 16; } e = target_read_memory( target, a, b, y / b, target_buf ); - if( e != ERROR_OK ){ + if ( e != ERROR_OK ){ Jim_SetResult_sprintf( interp, "error reading target @ 0x%08lx", (int)(a) ); return JIM_ERR; } @@ -3859,7 +3925,7 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) } /* ascii-ify the bytes */ for( x = 0 ; x < y ; x++ ){ - if( (target_buf[x] >= 0x20) && + if ( (target_buf[x] >= 0x20) && (target_buf[x] <= 0x7e) ){ /* good */ } else { @@ -3888,31 +3954,31 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) return target_array2mem( goi.interp, target, goi.argc, goi.argv ); break; case TS_CMD_EXAMINE: - if( goi.argc ){ + if ( goi.argc ){ Jim_WrongNumArgs( goi.interp, 2, argv, "[no parameters]"); return JIM_ERR; } if (!target->tap->enabled) goto err_tap_disabled; e = target->type->examine( target ); - if( e != ERROR_OK ){ + if ( e != ERROR_OK ){ Jim_SetResult_sprintf( interp, "examine-fails: %d", e ); return JIM_ERR; } return JIM_OK; case TS_CMD_POLL: - if( goi.argc ){ + if ( goi.argc ){ Jim_WrongNumArgs( goi.interp, 2, argv, "[no parameters]"); return JIM_ERR; } if (!target->tap->enabled) goto err_tap_disabled; - if( !(target_was_examined(target)) ){ + if ( !(target_was_examined(target)) ){ e = ERROR_TARGET_NOT_EXAMINED; } else { e = target->type->poll( target ); } - if( e != ERROR_OK ){ + if ( e != ERROR_OK ){ Jim_SetResult_sprintf( interp, "poll-fails: %d", e ); return JIM_ERR; } else { @@ -3920,18 +3986,18 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) } break; case TS_CMD_RESET: - if( goi.argc != 2 ){ + if ( goi.argc != 2 ){ Jim_WrongNumArgs( interp, 2, argv, "t|f|assert|deassert BOOL"); return JIM_ERR; } e = Jim_GetOpt_Nvp( &goi, nvp_assert, &n ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ Jim_GetOpt_NvpUnknown( &goi, nvp_assert, 1 ); return e; } /* the halt or not param */ e = Jim_GetOpt_Wide( &goi, &a); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ return e; } if (!target->tap->enabled) @@ -3942,14 +4008,14 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) target_free_all_working_areas_restore(target, 0); /* do the assert */ - if( n->value == NVP_ASSERT ){ + if ( n->value == NVP_ASSERT ){ target->type->assert_reset( target ); } else { target->type->deassert_reset( target ); } return JIM_OK; case TS_CMD_HALT: - if( goi.argc ){ + if ( goi.argc ){ Jim_WrongNumArgs( goi.interp, 0, argv, "halt [no parameters]"); return JIM_ERR; } @@ -3959,23 +4025,23 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) return JIM_OK; case TS_CMD_WAITSTATE: /* params: statename timeoutmsecs */ - if( goi.argc != 2 ){ + if ( goi.argc != 2 ){ Jim_SetResult_sprintf( goi.interp, "%s STATENAME TIMEOUTMSECS", n->name ); return JIM_ERR; } e = Jim_GetOpt_Nvp( &goi, nvp_target_state, &n ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ Jim_GetOpt_NvpUnknown( &goi, nvp_target_state,1 ); return e; } e = Jim_GetOpt_Wide( &goi, &a ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ return e; } if (!target->tap->enabled) goto err_tap_disabled; e = target_wait_state( target, n->value, a ); - if( e != ERROR_OK ){ + if ( e != ERROR_OK ){ Jim_SetResult_sprintf( goi.interp, "target: %s wait %s fails (%d) %s", target->cmd_name, @@ -4008,7 +4074,7 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) return JIM_OK; } case TS_CMD_CURSTATE: - if( goi.argc != 0 ){ + if ( goi.argc != 0 ){ Jim_WrongNumArgs( goi.interp, 0, argv, "[no parameters]"); return JIM_ERR; } @@ -4016,12 +4082,12 @@ static int tcl_target_func( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) Jim_Nvp_value2name_simple(nvp_target_state,target->state)->name,-1); return JIM_OK; case TS_CMD_INVOKE_EVENT: - if( goi.argc != 1 ){ + if ( goi.argc != 1 ){ Jim_SetResult_sprintf( goi.interp, "%s ?EVENTNAME?",n->name); return JIM_ERR; } e = Jim_GetOpt_Nvp( &goi, nvp_target_event, &n ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ Jim_GetOpt_NvpUnknown( &goi, nvp_target_event, 1 ); return e; } @@ -4047,7 +4113,7 @@ static int target_create( Jim_GetOptInfo *goi ) struct command_context_s *cmd_ctx; cmd_ctx = Jim_GetAssocData(goi->interp, "context"); - if( goi->argc < 3 ){ + if ( goi->argc < 3 ){ Jim_WrongNumArgs( goi->interp, 1, goi->argv, "?name? ?type? ..options..."); return JIM_ERR; } @@ -4056,7 +4122,7 @@ static int target_create( Jim_GetOptInfo *goi ) Jim_GetOpt_Obj( goi, &new_cmd ); /* does this command exist? */ cmd = Jim_GetCommand( goi->interp, new_cmd, JIM_ERRMSG ); - if( cmd ){ + if ( cmd ){ cp = Jim_GetString( new_cmd, NULL ); Jim_SetResult_sprintf(goi->interp, "Command/target: %s Exists", cp); return JIM_ERR; @@ -4067,15 +4133,15 @@ static int target_create( Jim_GetOptInfo *goi ) cp = cp2; /* now does target type exist */ for( x = 0 ; target_types[x] ; x++ ){ - if( 0 == strcmp( cp, target_types[x]->name ) ){ + if ( 0 == strcmp( cp, target_types[x]->name ) ){ /* found */ break; } } - if( target_types[x] == NULL ){ + if ( target_types[x] == NULL ){ Jim_SetResult_sprintf( goi->interp, "Unknown target type %s, try one of ", cp ); for( x = 0 ; target_types[x] ; x++ ){ - if( target_types[x+1] ){ + if ( target_types[x+1] ){ Jim_AppendStrings( goi->interp, Jim_GetResult(goi->interp), target_types[x]->name, @@ -4143,13 +4209,13 @@ static int target_create( Jim_GetOptInfo *goi ) e=JIM_ERR; } - if( e != JIM_OK ){ + if ( e != JIM_OK ){ free( target->type ); free( target ); return e; } - if( target->endianness == TARGET_ENDIAN_UNKNOWN ){ + if ( target->endianness == TARGET_ENDIAN_UNKNOWN ){ /* default endian to little if not specified */ target->endianness = TARGET_LITTLE_ENDIAN; } @@ -4159,10 +4225,10 @@ static int target_create( Jim_GetOptInfo *goi ) target->variant = strdup(""); /* create the target specific commands */ - if( target->type->register_commands ){ + if ( target->type->register_commands ){ (*(target->type->register_commands))( cmd_ctx ); } - if( target->type->target_create ){ + if ( target->type->target_create ){ (*(target->type->target_create))( target, goi->interp ); } @@ -4219,14 +4285,14 @@ static int jim_target( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) Jim_GetOpt_Setup( &goi, interp, argc-1, argv+1 ); - if( goi.argc == 0 ){ + if ( goi.argc == 0 ){ Jim_WrongNumArgs(interp, 1, argv, "missing: command ..."); return JIM_ERR; } /* Jim_GetOpt_Debug( &goi ); */ r = Jim_GetOpt_Enum( &goi, target_cmds, &x ); - if( r != JIM_OK ){ + if ( r != JIM_OK ){ return r; } @@ -4235,14 +4301,14 @@ static int jim_target( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) Jim_Panic(goi.interp,"Why am I here?"); return JIM_ERR; case TG_CMD_CURRENT: - if( goi.argc != 0 ){ + if ( goi.argc != 0 ){ 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: - if( goi.argc != 0 ){ + if ( goi.argc != 0 ){ Jim_WrongNumArgs( goi.interp, 1, goi.argv, "Too many parameters" ); return JIM_ERR; } @@ -4254,7 +4320,7 @@ static int jim_target( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) } return JIM_OK; case TG_CMD_NAMES: - if( goi.argc != 0 ){ + if ( goi.argc != 0 ){ Jim_WrongNumArgs( goi.interp, 1, goi.argv, "Too many parameters" ); return JIM_ERR; } @@ -4268,25 +4334,25 @@ static int jim_target( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) } return JIM_OK; case TG_CMD_CREATE: - if( goi.argc < 3 ){ + if ( goi.argc < 3 ){ Jim_WrongNumArgs( goi.interp, goi.argc, goi.argv, "?name ... config options ..."); return JIM_ERR; } return target_create( &goi ); break; case TG_CMD_NUMBER: - if( goi.argc != 1 ){ + if ( goi.argc != 1 ){ Jim_SetResult_sprintf( goi.interp, "expected: target number ?NUMBER?"); return JIM_ERR; } e = Jim_GetOpt_Wide( &goi, &w ); - if( e != JIM_OK ){ + if ( e != JIM_OK ){ return JIM_ERR; } { target_t *t; t = get_target_by_num(w); - if( t == NULL ){ + if ( t == NULL ){ Jim_SetResult_sprintf( goi.interp,"Target: number %d does not exist", (int)(w)); return JIM_ERR; } @@ -4294,7 +4360,7 @@ static int jim_target( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) return JIM_OK; } case TG_CMD_COUNT: - if( goi.argc != 0 ){ + if ( goi.argc != 0 ){ Jim_WrongNumArgs( goi.interp, 0, goi.argv, ""); return JIM_ERR; } @@ -4309,7 +4375,7 @@ static int jim_target( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) struct FastLoad { - u32 address; + uint32_t address; uint8_t *data; int length; @@ -4339,10 +4405,10 @@ static void free_fastload(void) static int handle_fast_load_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { uint8_t *buffer; - u32 buf_cnt; - u32 image_size; - u32 min_address=0; - u32 max_address=0xffffffff; + uint32_t buf_cnt; + uint32_t image_size; + uint32_t min_address=0; + uint32_t max_address=0xffffffff; int i; image_t image; @@ -4377,7 +4443,8 @@ static int handle_fast_load_image_command(struct command_context_s *cmd_ctx, cha buffer = malloc(image.sections[i].size); if (buffer == NULL) { - command_print(cmd_ctx, "error allocating buffer for section (%d bytes)", image.sections[i].size); + command_print(cmd_ctx, "error allocating buffer for section (%d bytes)", + (int)(image.sections[i].size)); break; } @@ -4387,8 +4454,8 @@ static int handle_fast_load_image_command(struct command_context_s *cmd_ctx, cha break; } - u32 offset=0; - u32 length=buf_cnt; + uint32_t offset=0; + uint32_t length=buf_cnt; /* DANGER!!! beware of unsigned comparision here!!! */ @@ -4419,7 +4486,9 @@ static int handle_fast_load_image_command(struct command_context_s *cmd_ctx, cha fastload[i].length=length; image_size += length; - command_print(cmd_ctx, "%u byte written at address 0x%8.8x", length, image.sections[i].base_address+offset); + command_print(cmd_ctx, "%u byte written at address 0x%8.8x", + (unsigned int)length, + ((unsigned int)(image.sections[i].base_address+offset))); } free(buffer); @@ -4428,7 +4497,7 @@ static int handle_fast_load_image_command(struct command_context_s *cmd_ctx, cha duration_stop_measure(&duration, &duration_text); if (retval==ERROR_OK) { - command_print(cmd_ctx, "Loaded %u bytes in %s", image_size, duration_text); + command_print(cmd_ctx, "Loaded %u bytes in %s", (unsigned int)image_size, duration_text); command_print(cmd_ctx, "NB!!! image has not been loaded to target, issue a subsequent 'fast_load' to do so."); } free(duration_text); @@ -4459,7 +4528,9 @@ static int handle_fast_load_command(struct command_context_s *cmd_ctx, char *cmd for (i=0; i