Correctly compute flash write size for partial pages
authorDave Vandervies <dj3vande@terse.ca>
Wed, 12 Aug 2015 21:34:32 +0000 (17:34 -0400)
committerDave Vandervies <dj3vande@terse.ca>
Mon, 17 Aug 2015 17:33:17 +0000 (13:33 -0400)
gdbserver/gdb-server.c

index bae496d314910983e03bb9d0483a383379134094..31f9beb0087b993463e7016b6f4a80d13bcbdfde 100644 (file)
@@ -705,8 +705,8 @@ static int flash_go(stlink_t *sl) {
     for(struct flash_block* fb = flash_root; fb; fb = fb->next) {
         DLOG("flash_do: block %08x -> %04x\n", fb->addr, fb->length);
 
-        unsigned length = fb->length;
         for(stm32_addr_t page = fb->addr; page < fb->addr + fb->length; page += FLASH_PAGE) {
+            unsigned length = fb->length - (page - fb->addr);
 
             //Update FLASH_PAGE
             stlink_calculate_pagesize(sl, page);