X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Fcortex_m.c;h=ea8a086027e42edb498a3f3bdc093b889197f5af;hp=5892a0e88ac4ee647daed2e6d05ade40e0cc321a;hb=c8492ee2d468bcee8e2b7bb0560e6329c12a86e2;hpb=80a94681de4c304ed8d550d4da547cdc523d2207 diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c index 5892a0e88a..ea8a086027 100644 --- a/src/target/cortex_m.c +++ b/src/target/cortex_m.c @@ -1583,7 +1583,6 @@ static int cortex_m3_read_memory(struct target *target, uint32_t address, { struct armv7m_common *armv7m = target_to_armv7m(target); struct adiv5_dap *swjdp = armv7m->arm.dap; - int retval = ERROR_COMMAND_SYNTAX_ERROR; if (armv7m->arm.is_armv6m) { /* armv6m does not handle unaligned memory access */ @@ -1591,22 +1590,7 @@ static int cortex_m3_read_memory(struct target *target, uint32_t address, return ERROR_TARGET_UNALIGNED_ACCESS; } - /* cortex_m3 handles unaligned memory access */ - if (count && buffer) { - switch (size) { - case 4: - retval = mem_ap_read_buf_u32(swjdp, buffer, 4 * count, address, true); - break; - case 2: - retval = mem_ap_read_buf_u16(swjdp, buffer, 2 * count, address); - break; - case 1: - retval = mem_ap_read_buf_u8(swjdp, buffer, count, address); - break; - } - } - - return retval; + return mem_ap_read(swjdp, buffer, size, count, address, true); } static int cortex_m3_write_memory(struct target *target, uint32_t address, @@ -1614,7 +1598,6 @@ static int cortex_m3_write_memory(struct target *target, uint32_t address, { struct armv7m_common *armv7m = target_to_armv7m(target); struct adiv5_dap *swjdp = armv7m->arm.dap; - int retval = ERROR_COMMAND_SYNTAX_ERROR; if (armv7m->arm.is_armv6m) { /* armv6m does not handle unaligned memory access */ @@ -1622,21 +1605,7 @@ static int cortex_m3_write_memory(struct target *target, uint32_t address, return ERROR_TARGET_UNALIGNED_ACCESS; } - if (count && buffer) { - switch (size) { - case 4: - retval = mem_ap_write_buf_u32(swjdp, buffer, 4 * count, address, true); - break; - case 2: - retval = mem_ap_write_buf_u16(swjdp, buffer, 2 * count, address); - break; - case 1: - retval = mem_ap_write_buf_u8(swjdp, buffer, count, address); - break; - } - } - - return retval; + return mem_ap_write(swjdp, buffer, size, count, address, true); } static int cortex_m3_init_target(struct command_context *cmd_ctx, @@ -1892,7 +1861,7 @@ static int cortex_m3_dcc_read(struct adiv5_dap *swjdp, uint8_t *value, uint8_t * uint16_t dcrdr; int retval; - mem_ap_read_buf_u16(swjdp, (uint8_t *)&dcrdr, 1, DCB_DCRDR); + mem_ap_read_buf_u16(swjdp, (uint8_t *)&dcrdr, 2, DCB_DCRDR); *ctrl = (uint8_t)dcrdr; *value = (uint8_t)(dcrdr >> 8); @@ -1902,7 +1871,7 @@ static int cortex_m3_dcc_read(struct adiv5_dap *swjdp, uint8_t *value, uint8_t * * signify we have read data */ if (dcrdr & (1 << 0)) { dcrdr = 0; - retval = mem_ap_write_buf_u16(swjdp, (uint8_t *)&dcrdr, 1, DCB_DCRDR); + retval = mem_ap_write_buf_u16(swjdp, (uint8_t *)&dcrdr, 2, DCB_DCRDR); if (retval != ERROR_OK) return retval; }