*/
int target_run_flash_async_algorithm(struct target *target,
- uint8_t *buffer, uint32_t count, int block_size,
+ const uint8_t *buffer, uint32_t count, int block_size,
int num_mem_params, struct mem_param *mem_params,
int num_reg_params, struct reg_param *reg_params,
uint32_t buffer_start, uint32_t buffer_size,
if (ERROR_OK != retval)
return retval;
+ retval = command_run_line(CMD_CTX, "init_target_events");
+ if (ERROR_OK != retval)
+ return retval;
+
retval = command_run_line(CMD_CTX, "init_board");
if (ERROR_OK != retval)
return retval;
return ERROR_OK;
}
-static int target_unregister_timer_callback(int (*callback)(void *priv), void *priv)
+int target_unregister_timer_callback(int (*callback)(void *priv), void *priv)
{
struct target_timer_callback **p = &target_timer_callbacks;
struct target_timer_callback *c = target_timer_callbacks;
for (struct target *target = all_targets;
is_jtag_poll_safe() && target;
target = target->next) {
+
+ if (!target_was_examined(target))
+ continue;
+
if (!target->tap->enabled)
continue;
return retval;
}
/* Since we succeeded, we reset backoff count */
- if (target->backoff.times > 0)
- LOG_USER("Polling target %s succeeded again", target_name(target));
+ if (target->backoff.times > 0) {
+ LOG_USER("Polling target %s succeeded again, trying to reexamine", target_name(target));
+ target_reset_examined(target);
+ target_examine_one(target);
+ }
+
target->backoff.times = 0;
}
}
if (diffs == 0)
LOG_ERROR("checksum mismatch - attempting binary compare");
- data = (uint8_t *)malloc(buf_cnt);
+ data = malloc(buf_cnt);
/* Can we use 32bit word accesses? */
int size = 1;
const uint32_t MAX_PROFILE_SAMPLE_NUM = 10000;
uint32_t offset;
- uint32_t num_of_sampels;
+ uint32_t num_of_samples;
int retval = ERROR_OK;
+
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], offset);
+
uint32_t *samples = malloc(sizeof(uint32_t) * MAX_PROFILE_SAMPLE_NUM);
if (samples == NULL) {
LOG_ERROR("No memory to store samples.");
return ERROR_FAIL;
}
- COMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], offset);
-
/**
* Some cores let us sample the PC without the
* annoying halt/resume step; for example, ARMv7 PCSR.
* Provide a way to use that more efficient mechanism.
*/
retval = target_profiling(target, samples, MAX_PROFILE_SAMPLE_NUM,
- &num_of_sampels, offset);
+ &num_of_samples, offset);
if (retval != ERROR_OK) {
free(samples);
return retval;
}
- assert(num_of_sampels <= MAX_PROFILE_SAMPLE_NUM);
+ assert(num_of_samples <= MAX_PROFILE_SAMPLE_NUM);
retval = target_poll(target);
if (retval != ERROR_OK) {
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[3], end_address);
}
- write_gmon(samples, num_of_sampels, CMD_ARGV[1],
+ write_gmon(samples, num_of_samples, CMD_ARGV[1],
with_range, start_address, end_address);
command_print(CMD_CTX, "Wrote %s", CMD_ARGV[1]);
target->target_number = new_target_number();
/* allocate memory for each unique target type */
- target->type = (struct target_type *)calloc(1, sizeof(struct target_type));
+ target->type = calloc(1, sizeof(struct target_type));
memcpy(target->type, target_types[x], sizeof(struct target_type));
image_size = 0x0;
retval = ERROR_OK;
fastload_num = image.num_sections;
- fastload = (struct FastLoad *)malloc(sizeof(struct FastLoad)*image.num_sections);
+ fastload = malloc(sizeof(struct FastLoad)*image.num_sections);
if (fastload == NULL) {
command_print(CMD_CTX, "out of memory");
image_close(&image);
read_buf[i] = read_ref[i];
}
command_print_sameline(CMD_CTX,
- "Test read %d x %d @ %d to %saligned buffer: ", count,
+ "Test read %" PRIu32 " x %d @ %d to %saligned buffer: ", count,
size, offset, host_offset ? "un" : "");
struct duration bench;
for (size_t i = 0; i < host_bufsiz; i++)
write_buf[i] = rand();
command_print_sameline(CMD_CTX,
- "Test write %d x %d @ %d from %saligned buffer: ", count,
+ "Test write %" PRIu32 " x %d @ %d from %saligned buffer: ", count,
size, offset, host_offset ? "un" : "");
retval = target_write_memory(target, wa->address, 1, num_bytes, test_pattern);