extern struct target_type feroceon_target;
extern struct target_type dragonite_target;
extern struct target_type xscale_target;
-extern struct target_type cortexm3_target;
+extern struct target_type cortexm_target;
extern struct target_type cortexa8_target;
extern struct target_type cortexr4_target;
extern struct target_type arm11_target;
extern struct target_type nds32_v2_target;
extern struct target_type nds32_v3_target;
extern struct target_type nds32_v3m_target;
+extern struct target_type or1k_target;
static struct target_type *target_types[] = {
&arm7tdmi_target,
&feroceon_target,
&dragonite_target,
&xscale_target,
- &cortexm3_target,
+ &cortexm_target,
&cortexa8_target,
&cortexr4_target,
&arm11_target,
&nds32_v2_target,
&nds32_v3_target,
&nds32_v3m_target,
+ &or1k_target,
NULL,
};
}
/* write a uint32_t array to a buffer in target memory endianness */
-void target_buffer_set_u32_array(struct target *target, uint8_t *buffer, uint32_t count, uint32_t *srcbuf)
+void target_buffer_set_u32_array(struct target *target, uint8_t *buffer, uint32_t count, const uint32_t *srcbuf)
{
uint32_t i;
for (i = 0; i < count; i++)
}
/* write a uint16_t array to a buffer in target memory endianness */
-void target_buffer_set_u16_array(struct target *target, uint8_t *buffer, uint32_t count, uint16_t *srcbuf)
+void target_buffer_set_u16_array(struct target *target, uint8_t *buffer, uint32_t count, const uint16_t *srcbuf)
{
uint32_t i;
for (i = 0; i < count; i++)
gettimeofday(&now, NULL);
if ((sample_count >= max_num_samples) ||
((now.tv_sec >= timeout.tv_sec) && (now.tv_usec >= timeout.tv_usec))) {
- LOG_INFO("Profiling completed. %d samples.", sample_count);
+ LOG_INFO("Profiling completed. %" PRIu32 " samples.", sample_count);
break;
}
}
int target_read_u8(struct target *target, uint32_t address, uint8_t *value)
{
- int retval = target_read_memory(target, address, 1, 1, value);
if (!target_was_examined(target)) {
LOG_ERROR("Target not examined yet");
return ERROR_FAIL;
}
+ int retval = target_read_memory(target, address, 1, 1, value);
+
if (retval == ERROR_OK) {
LOG_DEBUG("address: 0x%8.8" PRIx32 ", value: 0x%2.2x",
address,
typedef int (*target_write_fn)(struct target *target,
uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer);
-static int target_write_memory_fast(struct target *target,
- uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer)
-{
- return target_write_buffer(target, address, size * count, buffer);
-}
-
static int target_fill_mem(struct target *target,
uint32_t address,
target_write_fn fn,
CMD_ARGV++;
fn = target_write_phys_memory;
} else
- fn = target_write_memory_fast;
+ fn = target_write_memory;
if ((CMD_ARGC < 2) || (CMD_ARGC > 3))
return ERROR_COMMAND_SYNTAX_ERROR;
return ERROR_FAIL;
}
- COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], offset);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], offset);
/**
* Some cores let us sample the PC without the
bool with_range = false;
if (CMD_ARGC == 4) {
with_range = true;
- COMMAND_PARSE_NUMBER(uint, CMD_ARGV[2], start_address);
- COMMAND_PARSE_NUMBER(uint, CMD_ARGV[3], end_address);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], start_address);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[3], end_address);
}
write_gmon(samples, num_of_sampels, CMD_ARGV[1],
new_int_array_element(interp, varname, n, v);
}
len -= count;
+ addr += count * width;
}
}
e = JIM_ERR;
break;
}
+ addr += count * width;
}
free(buffer);
n->name);
return JIM_ERR;
}
- if (target->variant)
- free((void *)(target->variant));
e = Jim_GetOpt_String(goi, &cp, NULL);
if (e != JIM_OK)
return e;
+ free(target->variant);
target->variant = strdup(cp);
} else {
if (goi->argc != 0)
}
target_write_fn fn;
- fn = target_write_memory_fast;
+ fn = target_write_memory;
int e;
if (strcmp(Jim_GetString(argv[1], NULL), "phys") == 0) {
fastload[i].data = malloc(length);
if (fastload[i].data == NULL) {
free(buffer);
- command_print(CMD_CTX, "error allocating buffer for section (%d bytes)",
+ command_print(CMD_CTX, "error allocating buffer for section (%" PRIu32 " bytes)",
length);
retval = ERROR_FAIL;
break;