From: vpalatin Date: Fri, 22 Feb 2008 16:43:13 +0000 (+0000) Subject: - fix read/write size for small unaligned accesses (thanks Michael Bruck) X-Git-Tag: v0.1.0~971 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=3c58540e0283a452a7606ba22e693df10d746d54 - fix read/write size for small unaligned accesses (thanks Michael Bruck) git-svn-id: svn://svn.berlios.de/openocd/trunk@318 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- diff --git a/src/target/target.c b/src/target/target.c index 8901cd1125..ce2d085643 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -772,6 +772,9 @@ int target_write_buffer(struct target_s *target, u32 address, u32 size, u8 *buff { int unaligned = 4 - (address % 4); + if (unaligned > size) + unaligned = size; + if ((retval = target->type->write_memory(target, address, 1, unaligned, buffer)) != ERROR_OK) return retval; @@ -833,6 +836,9 @@ int target_read_buffer(struct target_s *target, u32 address, u32 size, u8 *buffe { int unaligned = 4 - (address % 4); + if (unaligned > size) + unaligned = size; + if ((retval = target->type->read_memory(target, address, 1, unaligned, buffer)) != ERROR_OK) return retval;