extern target_type_t arm9tdmi_target;
extern target_type_t arm920t_target;
extern target_type_t arm966e_target;
+extern target_type_t arm926ejs_target;
target_type_t *target_types[] =
{
&arm920t_target,
&arm720t_target,
&arm966e_target,
+ &arm926ejs_target,
NULL,
};
if ((event == TARGET_EVENT_HALTED) && (target->reset_script))
{
+ target_unregister_event_callback(target_init_handler, priv);
+
script = fopen(target->reset_script, "r");
if (!script)
{
fclose(script);
jtag_execute_queue();
-
- target_unregister_event_callback(target_init_handler, priv);
}
return ERROR_OK;
(*last_target_p)->working_areas = NULL;
(*last_target_p)->backup_working_area = 0;
- (*last_target_p)->endianness = TARGET_LITTLE_ENDIAN;
(*last_target_p)->state = TARGET_UNKNOWN;
(*last_target_p)->reg_cache = NULL;
(*last_target_p)->breakpoints = NULL;
int i;
for (i = 0; i < cache->num_regs; i++)
{
- value = buf_to_char(cache->reg_list[i].value, cache->reg_list[i].size);
+ 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);
free(value);
}
}
arch_type->get(reg);
}
- value = buf_to_char(reg->value, reg->size);
+ value = buf_to_str(reg->value, reg->size, 16);
command_print(cmd_ctx, "%s (/%i): 0x%s", reg->name, reg->size, value);
free(value);
return ERROR_OK;
/* set register value */
if (argc == 2)
{
- u32 new_value = strtoul(args[1], NULL, 0);
+ u8 *buf = malloc(CEIL(reg->size, 8));
+ str_to_buf(args[1], strlen(args[1]), buf, reg->size, 0);
+
reg_arch_type_t *arch_type = register_get_arch_type(reg->arch_type);
if (arch_type == NULL)
{
return ERROR_OK;
}
- arch_type->set(reg, new_value);
- value = buf_to_char(reg->value, reg->size);
+ 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);
free(value);
+ free(buf);
+
return ERROR_OK;
}
{
if (breakpoint->type == BKPT_SOFT)
{
- char* buf = buf_to_char(breakpoint->orig_instr, breakpoint->length);
+ 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, breakpoint->set, buf);
free(buf);
}