#include "arm9tdmi.h"
#include "target_type.h"
#include "register.h"
+#include "arm_opcodes.h"
/*
return ERROR_OK;
}
-extern void arm_endianness(uint8_t *tmp, void *in, int size, int be, int flip);
-
static int arm9endianness(jtag_callback_data_t arg,
jtag_callback_data_t size, jtag_callback_data_t be,
jtag_callback_data_t captured)
static void arm9tdmi_build_reg_cache(struct target *target)
{
struct reg_cache **cache_p = register_get_last_cache_p(&target->reg_cache);
- struct arm *armv4_5 = target_to_armv4_5(target);
+ struct arm *armv4_5 = target_to_arm(target);
- (*cache_p) = armv4_5_build_reg_cache(target, armv4_5);
+ (*cache_p) = arm_build_reg_cache(target, armv4_5);
}
int arm9tdmi_init_target(struct command_context *cmd_ctx,
struct reg *vector_catch;
uint32_t vector_catch_value;
+ if (!target_was_examined(target))
+ {
+ LOG_ERROR("Target not examined yet");
+ return ERROR_FAIL;
+ }
+
/* it's uncommon, but some ARM7 chips can support this */
if (arm7_9->common_magic != ARM7_9_COMMON_MAGIC
|| !arm7_9->has_vector_catch) {
},
COMMAND_REGISTRATION_DONE
};
-static const struct command_registration arm9tdmi_command_handlers[] = {
+const struct command_registration arm9tdmi_command_handlers[] = {
+ {
+ .chain = arm7_9_command_handlers,
+ },
{
.name = "arm9tdmi",
.mode = COMMAND_ANY,
COMMAND_REGISTRATION_DONE
};
-int arm9tdmi_register_commands(struct command_context *cmd_ctx)
-{
- arm7_9_register_commands(cmd_ctx);
- return register_commands(cmd_ctx, NULL, arm9tdmi_command_handlers);
-}
-
/** Holds methods for ARM9TDMI targets. */
struct target_type arm9tdmi_target =
{
.name = "arm9tdmi",
.poll = arm7_9_poll,
- .arch_state = armv4_5_arch_state,
+ .arch_state = arm_arch_state,
.target_request_data = arm7_9_target_request_data,
.deassert_reset = arm7_9_deassert_reset,
.soft_reset_halt = arm7_9_soft_reset_halt,
- .get_gdb_reg_list = armv4_5_get_gdb_reg_list,
+ .get_gdb_reg_list = arm_get_gdb_reg_list,
.read_memory = arm7_9_read_memory,
.write_memory = arm7_9_write_memory,
.add_watchpoint = arm7_9_add_watchpoint,
.remove_watchpoint = arm7_9_remove_watchpoint,
- .register_commands = arm9tdmi_register_commands,
+ .commands = arm9tdmi_command_handlers,
.target_create = arm9tdmi_target_create,
.init_target = arm9tdmi_init_target,
.examine = arm7_9_examine,