* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "target.h"
#include "target_type.h"
-
#define AVR_JTAG_INS_LEN 4
/* forward declarations */
-int avr_target_create(struct target *target, Jim_Interp *interp);
-int avr_init_target(struct command_context *cmd_ctx, struct target *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 *target);
-int avr_poll(struct target *target);
-int avr_halt(struct target *target);
-int avr_resume(struct target *target, int current, uint32_t address, int handle_breakpoints, int debug_execution);
-int avr_step(struct target *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, target_addr_t address,
+ int handle_breakpoints, int debug_execution);
+static int avr_step(struct target *target, int current, target_addr_t address,
+ int handle_breakpoints);
-int avr_assert_reset(struct target *target);
-int avr_deassert_reset(struct target *target);
-int avr_soft_reset_halt(struct target *target);
+static int avr_assert_reset(struct target *target);
+static int avr_deassert_reset(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);
-
-struct target_type 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",
.poll = avr_poll,
.arch_state = avr_arch_state,
- .target_request_data = NULL,
-
.halt = avr_halt,
.resume = avr_resume,
.step = avr_step,
.assert_reset = avr_assert_reset,
.deassert_reset = avr_deassert_reset,
- .soft_reset_halt = avr_soft_reset_halt,
/*
.get_gdb_reg_list = avr_get_gdb_reg_list,
.init_target = avr_init_target,
};
-int avr_target_create(struct target *target, Jim_Interp *interp)
+static int avr_target_create(struct target *target, Jim_Interp *interp)
{
struct avr_common *avr = calloc(1, sizeof(struct avr_common));
return ERROR_OK;
}
-int avr_init_target(struct command_context *cmd_ctx, struct target *target)
+static int avr_init_target(struct command_context *cmd_ctx, struct target *target)
{
- LOG_DEBUG("%s", __FUNCTION__);
+ LOG_DEBUG("%s", __func__);
return ERROR_OK;
}
-int avr_arch_state(struct target *target)
+static int avr_arch_state(struct target *target)
{
- LOG_DEBUG("%s", __FUNCTION__);
+ LOG_DEBUG("%s", __func__);
return ERROR_OK;
}
-int avr_poll(struct target *target)
+static int avr_poll(struct target *target)
{
if ((target->state == TARGET_RUNNING) || (target->state == TARGET_DEBUG_RUNNING))
- {
target->state = TARGET_HALTED;
- }
- LOG_DEBUG("%s", __FUNCTION__);
+ LOG_DEBUG("%s", __func__);
return ERROR_OK;
}
-int avr_halt(struct target *target)
+static int avr_halt(struct target *target)
{
- LOG_DEBUG("%s", __FUNCTION__);
+ LOG_DEBUG("%s", __func__);
return ERROR_OK;
}
-int avr_resume(struct target *target, int current, uint32_t address, int handle_breakpoints, int debug_execution)
+static int avr_resume(struct target *target, int current, target_addr_t address,
+ int handle_breakpoints, int debug_execution)
{
- LOG_DEBUG("%s", __FUNCTION__);
+ LOG_DEBUG("%s", __func__);
return ERROR_OK;
}
-int avr_step(struct target *target, int current, uint32_t address, int handle_breakpoints)
+static int avr_step(struct target *target, int current, target_addr_t address, int handle_breakpoints)
{
- LOG_DEBUG("%s", __FUNCTION__);
+ LOG_DEBUG("%s", __func__);
return ERROR_OK;
}
-int avr_assert_reset(struct target *target)
+static int avr_assert_reset(struct target *target)
{
target->state = TARGET_RESET;
- LOG_DEBUG("%s", __FUNCTION__);
+ LOG_DEBUG("%s", __func__);
return ERROR_OK;
}
-int avr_deassert_reset(struct target *target)
+static int avr_deassert_reset(struct target *target)
{
target->state = TARGET_RUNNING;
- LOG_DEBUG("%s", __FUNCTION__);
+ LOG_DEBUG("%s", __func__);
return ERROR_OK;
}
-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);
}
}
/* 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)
- {
+ if (NULL == tap) {
LOG_ERROR("invalid tap");
return ERROR_FAIL;
}
- if (ir_len != tap->ir_length)
- {
+ if (ir_len != tap->ir_length) {
LOG_ERROR("invalid ir_len");
return ERROR_FAIL;
}
{
- struct scan_field field[1];
-
- field[0].num_bits = tap->ir_length;
- field[0].out_value = ir_out;
- field[0].in_value = ir_in;
- jtag_add_plain_ir_scan(ARRAY_SIZE(field), 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)
- {
+ if (NULL == tap) {
LOG_ERROR("invalid tap");
return ERROR_FAIL;
}
{
- struct scan_field field[1];
-
- field[0].num_bits = dr_len;
- field[0].out_value = dr_out;
- field[0].in_value = dr_in;
- jtag_add_plain_dr_scan(ARRAY_SIZE(field), 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)
- {
+ if (ir_len > 8) {
LOG_ERROR("ir_len overflow, maxium is 8");
return ERROR_FAIL;
}
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)
+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 > 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)
-{
- if (dr_len > 32)
- {
+ if (dr_len > 32) {
LOG_ERROR("dr_len overflow, maxium is 32");
return ERROR_FAIL;
}
- mcu_write_dr(tap, (uint8_t*)dr_in, (uint8_t*)&dr_out, dr_len, rti);
+ mcu_write_dr(tap, (uint8_t *)dr_in, (uint8_t *)&dr_out, dr_len, rti);
return ERROR_OK;
}