From 5ecfc96192b01cf6a9dbd3c1d1fcbe91784c88a5 Mon Sep 17 00:00:00 2001 From: Jason Moehlman Date: Mon, 19 Nov 2012 18:33:34 -0500 Subject: [PATCH] arm: Mis-aligned data issue fix. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes issue with big endian hosts and mis-aligned data on some hosts. Fixes unaligned access exception on hosts that do not support unaligned access when debugging some arm targets. Signed-off-by: Jason Moehlman Change-Id: I6bc6fb1b3c3565b256674b9ef43ed2afd14f5178 Reviewed-on: http://openocd.zylin.com/996 Tested-by: jenkins Reviewed-by: Øyvind Harboe --- src/target/arm_adi_v5.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c index 65d29f0c2..a0fd4cb4a 100644 --- a/src/target/arm_adi_v5.c +++ b/src/target/arm_adi_v5.c @@ -307,8 +307,9 @@ int mem_ap_write_buf_u32(struct adiv5_dap *dap, const uint8_t *buffer, int count return retval; for (writecount = 0; writecount < blocksize; writecount++) { - retval = dap_queue_ap_write(dap, AP_REG_DRW, - *(uint32_t *) ((void *) (buffer + 4 * writecount))); + uint32_t tmp; + tmp = buf_get_u32(buffer + 4 * writecount, 0, 32); + retval = dap_queue_ap_write(dap, AP_REG_DRW, tmp); if (retval != ERROR_OK) break; } -- 2.30.2