X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Favrt.c;h=1ddf24d8f74e84801cb0011fa2797afad01d4bc1;hp=bff2418c9475d803c72f82f8043d07f727a85f74;hb=f1f8d9a6c9b1fd35d79627b568faa2409f13311f;hpb=42ef503d37b18d907da16d26e99167566d5aabd1 diff --git a/src/target/avrt.c b/src/target/avrt.c index bff2418c94..1ddf24d8f7 100644 --- a/src/target/avrt.c +++ b/src/target/avrt.c @@ -28,38 +28,27 @@ #define AVR_JTAG_INS_LEN 4 -/* cli handling */ -int avr_register_commands(struct command_context_s *cmd_ctx); - /* forward declarations */ -int avr_target_create(struct target_s *target, Jim_Interp *interp); -int avr_init_target(struct command_context_s *cmd_ctx, struct target_s *target); +static int avr_target_create(struct target *target, Jim_Interp *interp); +static int avr_init_target(struct command_context *cmd_ctx, struct target *target); -int avr_arch_state(struct target_s *target); -int avr_poll(target_t *target); -int avr_halt(target_t *target); -int avr_resume(struct target_s *target, int current, uint32_t address, int handle_breakpoints, int debug_execution); -int avr_step(struct target_s *target, int current, uint32_t address, int handle_breakpoints); +static int avr_arch_state(struct target *target); +static int avr_poll(struct target *target); +static int avr_halt(struct target *target); +static int avr_resume(struct target *target, int current, uint32_t address, int handle_breakpoints, int debug_execution); +static int avr_step(struct target *target, int current, uint32_t address, int handle_breakpoints); -int avr_assert_reset(target_t *target); -int avr_deassert_reset(target_t *target); -int avr_soft_reset_halt(struct target_s *target); +static int avr_assert_reset(struct target *target); +static int avr_deassert_reset(struct target *target); +static int avr_soft_reset_halt(struct target *target); /* IR and DR functions */ -int avr_jtag_sendinstr(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out); -int avr_jtag_senddat(struct jtag_tap *tap, uint32_t *dr_in, uint32_t dr_out, int len); - -int mcu_write_ir(struct jtag_tap *tap, uint8_t *ir_in, uint8_t *ir_out, int ir_len, int rti); -int mcu_write_dr(struct jtag_tap *tap, uint8_t *dr_in, uint8_t *dr_out, int dr_len, int rti); -int mcu_write_ir_u8(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out, int ir_len, int rti); -int mcu_write_dr_u8(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out, int dr_len, int rti); -int mcu_write_ir_u16(struct jtag_tap *tap, uint16_t *ir_in, uint16_t ir_out, int ir_len, int rti); -int mcu_write_dr_u16(struct jtag_tap *tap, uint16_t *ir_in, uint16_t ir_out, int dr_len, int rti); -int mcu_write_ir_u32(struct jtag_tap *tap, uint32_t *ir_in, uint32_t ir_out, int ir_len, int rti); -int mcu_write_dr_u32(struct jtag_tap *tap, uint32_t *ir_in, uint32_t ir_out, int dr_len, int rti); -int mcu_execute_queue(void); - -target_type_t avr_target = +static int mcu_write_ir(struct jtag_tap *tap, uint8_t *ir_in, uint8_t *ir_out, int ir_len, int rti); +static int mcu_write_dr(struct jtag_tap *tap, uint8_t *dr_in, uint8_t *dr_out, int dr_len, int rti); +static int mcu_write_ir_u8(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out, int ir_len, int rti); +static int mcu_write_dr_u32(struct jtag_tap *tap, uint32_t *ir_in, uint32_t ir_out, int dr_len, int rti); + +struct target_type avr_target = { .name = "avr", @@ -91,20 +80,13 @@ target_type_t avr_target = .add_watchpoint = avr_add_watchpoint, .remove_watchpoint = avr_remove_watchpoint, */ - .register_commands = avr_register_commands, .target_create = avr_target_create, .init_target = avr_init_target, }; -int avr_register_commands(struct command_context_s *cmd_ctx) -{ - LOG_DEBUG("%s", __FUNCTION__); - return ERROR_OK; -} - -int avr_target_create(struct target_s *target, Jim_Interp *interp) +static int avr_target_create(struct target *target, Jim_Interp *interp) { - avr_common_t *avr = calloc(1, sizeof(avr_common_t)); + struct avr_common *avr = calloc(1, sizeof(struct avr_common)); avr->jtag_info.tap = target->tap; target->arch_info = avr; @@ -112,19 +94,19 @@ int avr_target_create(struct target_s *target, Jim_Interp *interp) return ERROR_OK; } -int avr_init_target(struct command_context_s *cmd_ctx, struct target_s *target) +static int avr_init_target(struct command_context *cmd_ctx, struct target *target) { LOG_DEBUG("%s", __FUNCTION__); return ERROR_OK; } -int avr_arch_state(struct target_s *target) +static int avr_arch_state(struct target *target) { LOG_DEBUG("%s", __FUNCTION__); return ERROR_OK; } -int avr_poll(target_t *target) +static int avr_poll(struct target *target) { if ((target->state == TARGET_RUNNING) || (target->state == TARGET_DEBUG_RUNNING)) { @@ -135,25 +117,26 @@ int avr_poll(target_t *target) return ERROR_OK; } -int avr_halt(target_t *target) +static int avr_halt(struct target *target) { LOG_DEBUG("%s", __FUNCTION__); return ERROR_OK; } -int avr_resume(struct target_s *target, int current, uint32_t address, int handle_breakpoints, int debug_execution) +static int avr_resume(struct target *target, int current, uint32_t address, + int handle_breakpoints, int debug_execution) { LOG_DEBUG("%s", __FUNCTION__); return ERROR_OK; } -int avr_step(struct target_s *target, int current, uint32_t address, int handle_breakpoints) +static int avr_step(struct target *target, int current, uint32_t address, int handle_breakpoints) { LOG_DEBUG("%s", __FUNCTION__); return ERROR_OK; } -int avr_assert_reset(target_t *target) +static int avr_assert_reset(struct target *target) { target->state = TARGET_RESET; @@ -161,7 +144,7 @@ int avr_assert_reset(target_t *target) return ERROR_OK; } -int avr_deassert_reset(target_t *target) +static int avr_deassert_reset(struct target *target) { target->state = TARGET_RUNNING; @@ -169,13 +152,14 @@ int avr_deassert_reset(target_t *target) return ERROR_OK; } -int avr_soft_reset_halt(struct target_s *target) +static int avr_soft_reset_halt(struct target *target) { LOG_DEBUG("%s", __FUNCTION__); return ERROR_OK; } -int avr_jtag_senddat(struct jtag_tap *tap, uint32_t* dr_in, uint32_t dr_out, int len) +int avr_jtag_senddat(struct jtag_tap *tap, uint32_t* dr_in, uint32_t dr_out, + int len) { return mcu_write_dr_u32(tap, dr_in, dr_out, len, 1); } @@ -186,7 +170,8 @@ int avr_jtag_sendinstr(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out) } /* IR and DR functions */ -int mcu_write_ir(struct jtag_tap *tap, uint8_t *ir_in, uint8_t *ir_out, int ir_len, int rti) +static int mcu_write_ir(struct jtag_tap *tap, uint8_t *ir_in, uint8_t *ir_out, + int ir_len, int rti) { if (NULL == tap) { @@ -200,19 +185,14 @@ int mcu_write_ir(struct jtag_tap *tap, uint8_t *ir_in, uint8_t *ir_out, int ir_l } { - scan_field_t field[1]; - - field[0].tap = tap; - field[0].num_bits = tap->ir_length; - field[0].out_value = ir_out; - field[0].in_value = ir_in; - jtag_add_plain_ir_scan(sizeof(field) / sizeof(field[0]), field, jtag_set_end_state(TAP_IDLE)); + jtag_add_plain_ir_scan(tap->ir_length, ir_out, ir_in, TAP_IDLE); } return ERROR_OK; } -int mcu_write_dr(struct jtag_tap *tap, uint8_t *dr_in, uint8_t *dr_out, int dr_len, int rti) +static int mcu_write_dr(struct jtag_tap *tap, uint8_t *dr_in, uint8_t *dr_out, + int dr_len, int rti) { if (NULL == tap) { @@ -221,19 +201,14 @@ int mcu_write_dr(struct jtag_tap *tap, uint8_t *dr_in, uint8_t *dr_out, int dr_l } { - scan_field_t field[1]; - - field[0].tap = tap; - field[0].num_bits = dr_len; - field[0].out_value = dr_out; - field[0].in_value = dr_in; - jtag_add_plain_dr_scan(sizeof(field) / sizeof(field[0]), field, jtag_set_end_state(TAP_IDLE)); + jtag_add_plain_dr_scan(dr_len, dr_out, dr_in, TAP_IDLE); } return ERROR_OK; } -int mcu_write_ir_u8(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out, int ir_len, int rti) +static int mcu_write_ir_u8(struct jtag_tap *tap, uint8_t *ir_in, + uint8_t ir_out, int ir_len, int rti) { if (ir_len > 8) { @@ -246,59 +221,8 @@ int mcu_write_ir_u8(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out, int ir return ERROR_OK; } -int mcu_write_dr_u8(struct jtag_tap *tap, uint8_t *dr_in, uint8_t dr_out, int dr_len, int rti) -{ - if (dr_len > 8) - { - LOG_ERROR("dr_len overflow, maxium is 8"); - return ERROR_FAIL; - } - - mcu_write_dr(tap, dr_in, &dr_out, dr_len, rti); - - return ERROR_OK; -} - -int mcu_write_ir_u16(struct jtag_tap *tap, uint16_t *ir_in, uint16_t ir_out, int ir_len, int rti) -{ - if (ir_len > 16) - { - LOG_ERROR("ir_len overflow, maxium is 16"); - return ERROR_FAIL; - } - - mcu_write_ir(tap, (uint8_t*)ir_in, (uint8_t*)&ir_out, ir_len, rti); - - return ERROR_OK; -} - -int mcu_write_dr_u16(struct jtag_tap *tap, uint16_t *dr_in, uint16_t dr_out, int dr_len, int rti) -{ - if (dr_len > 16) - { - LOG_ERROR("dr_len overflow, maxium is 16"); - return ERROR_FAIL; - } - - mcu_write_dr(tap, (uint8_t*)dr_in, (uint8_t*)&dr_out, dr_len, rti); - - return ERROR_OK; -} - -int mcu_write_ir_u32(struct jtag_tap *tap, uint32_t *ir_in, uint32_t ir_out, int ir_len, int rti) -{ - if (ir_len > 32) - { - LOG_ERROR("ir_len overflow, maxium is 32"); - return ERROR_FAIL; - } - - mcu_write_ir(tap, (uint8_t*)ir_in, (uint8_t*)&ir_out, ir_len, rti); - - return ERROR_OK; -} - -int mcu_write_dr_u32(struct jtag_tap *tap, uint32_t *dr_in, uint32_t dr_out, int dr_len, int rti) +static int mcu_write_dr_u32(struct jtag_tap *tap, uint32_t *dr_in, + uint32_t dr_out, int dr_len, int rti) { if (dr_len > 32) {