]> git.sur5r.net Git - openocd/commitdiff
- fix read/write size for small unaligned accesses (thanks Michael Bruck)
authorvpalatin <vpalatin@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 22 Feb 2008 16:43:13 +0000 (16:43 +0000)
committervpalatin <vpalatin@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 22 Feb 2008 16:43:13 +0000 (16:43 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@318 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/target/target.c

index 8901cd1125966ff999d6cb852140390d31b79f97..ce2d08564307bee2d72b4ba2472f231c943aeb48 100644 (file)
@@ -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;