Audrius Urmanavičius <didele.deze@gmail.com> cleanup flash fill
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Thu, 5 Mar 2009 07:41:04 +0000 (07:41 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Thu, 5 Mar 2009 07:41:04 +0000 (07:41 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@1399 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/flash/flash.c

index 1572e5cd53b8239620e5d0882c4dc4042ed4b0c3..916ac24d8e959930ab3e2ffb6619779aadb824dd 100644 (file)
@@ -727,6 +727,7 @@ int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char
        u32 count;
        u8 chunk[1024];
        u32 wrote = 0;
+       u32 cur_size = 0;
        int chunk_count;
        char *duration_text;
        duration_t duration;
@@ -786,9 +787,9 @@ int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char
 
        duration_start_measure(&duration);
 
-       for (wrote=0; wrote<(count*wordsize); wrote+=sizeof(chunk))
+       for (wrote=0; wrote<(count*wordsize); wrote += cur_size)
        {
-               int cur_size = MIN( (count*wordsize - wrote) , 1024 );
+               cur_size = MIN( (count*wordsize - wrote), sizeof(chunk) );
                flash_bank_t *bank;
                bank = get_flash_bank_by_addr(target, address);
                if(bank == NULL)
@@ -798,7 +799,6 @@ int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char
                err = flash_driver_write(bank, chunk, address - bank->base + wrote, cur_size);
                if (err!=ERROR_OK)
                        return err;
-               wrote += cur_size;
        }
 
        if ((retval = duration_stop_measure(&duration, &duration_text)) != ERROR_OK)