From: Tomas Vanek Date: Fri, 2 Oct 2015 12:31:30 +0000 (+0200) Subject: Kinetis: properly pad flash section writes X-Git-Tag: v0.10.0-rc1~390 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=a780e412cc9daf7b46c107e190710f0b6c1ac1ad;p=openocd Kinetis: properly pad flash section writes kinetis_write() with byte count not divisible by prog_section_chunk_bytes computed wrong wc and therefore paded section chunk by some random data instead of 0xff Change-Id: Ic7c66d8a3ceacda9e611e98b9fbf943b8001774b Signed-off-by: Tomas Vanek Reviewed-on: http://openocd.zylin.com/2994 Tested-by: jenkins Reviewed-by: Thomas Schmid Reviewed-by: Paul Fertser --- diff --git a/src/flash/nor/kinetis.c b/src/flash/nor/kinetis.c index 484bc479..73ba586a 100644 --- a/src/flash/nor/kinetis.c +++ b/src/flash/nor/kinetis.c @@ -1054,7 +1054,7 @@ static int kinetis_write(struct flash_bank *bank, const uint8_t *buffer, unsigned residual_bc = (count-i) % prog_section_chunk_bytes; /* number of complete words to copy directly from buffer */ - wc = (count - i) / 4; + wc = (count - i - residual_bc) / 4; /* number of total sections to write, including residual */ section_count = DIV_ROUND_UP((count-i), prog_section_chunk_bytes);