bug #35456 The progress bar for STK500V2 programmer is "wrong".
* avr.c (avr_read, avr_write): Change the progress reporting for paged read/write from per-address to per-considered-page. This ought to give a realistic estimation about the time still to be spent. git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1220 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
parent
5113b8051a
commit
9697ebe2ec
|
@ -1,3 +1,11 @@
|
|||
2013-09-13 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
|
||||
|
||||
bug #35456 The progress bar for STK500V2 programmer is "wrong".
|
||||
* avr.c (avr_read, avr_write): Change the progress reporting for
|
||||
paged read/write from per-address to per-considered-page. This
|
||||
ought to give a realistic estimation about the time still to be
|
||||
spent.
|
||||
|
||||
2013-09-13 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
|
||||
|
||||
bug #34277: avrdude reads wrong byte order if using avr911 (aka butterfly)
|
||||
|
|
9
NEWS
9
NEWS
|
@ -88,14 +88,15 @@ Current:
|
|||
- bug #39794: warnings when building avrdude 6.0rc1 under CentOS 6.4
|
||||
- bug #35800: Compilation error on certain systems if parport is disabled
|
||||
- bug #38307: Can't write usersig of an xmega256a3
|
||||
- bug #38580 Current svn head, xmega and fuses, all fuses tied to fuse0
|
||||
- bug #39691 Buffer overrun when reading EEPROM byte with JTAGICE3
|
||||
- bug #38580: Current svn head, xmega and fuses, all fuses tied to fuse0
|
||||
- bug #39691: Buffer overrun when reading EEPROM byte with JTAGICE3
|
||||
- bug #38951: AVR109 use byte offset instead of word offset
|
||||
- patch #7769: Write flash fails for AVR910 programmers
|
||||
- bug #38732: Support for ATtiny1634
|
||||
- bug #36901 flashing Atmega32U4 EEPROM produces garbage on chip
|
||||
- bug #28344 chip_erase_delay too short for ATmega324P, 644, 644P, and 1284P
|
||||
- bug #36901: flashing Atmega32U4 EEPROM produces garbage on chip
|
||||
- bug #28344: chip_erase_delay too short for ATmega324P, 644, 644P, and 1284P
|
||||
- bug #34277: avrdude reads wrong byte order if using avr911 (aka butterfly)
|
||||
- bug #35456: The progress bar for STK500V2 programmer is "wrong".
|
||||
|
||||
* Keep track of input file contents
|
||||
|
||||
|
|
40
avr.c
40
avr.c
|
@ -373,8 +373,23 @@ int avr_read(PROGRAMMER * pgm, AVRPART * p, char * memtype,
|
|||
*/
|
||||
int need_read, failure;
|
||||
unsigned int pageaddr;
|
||||
unsigned int npages, nread;
|
||||
|
||||
for (pageaddr = 0, failure = 0;
|
||||
/* quickly scan number of pages to be written to first */
|
||||
for (pageaddr = 0, npages = 0;
|
||||
pageaddr < mem->size;
|
||||
pageaddr += mem->page_size) {
|
||||
/* check whether this page must be read */
|
||||
for (i = pageaddr;
|
||||
i < pageaddr + mem->page_size;
|
||||
i++)
|
||||
if ((mem->tags[i] & TAG_ALLOCATED) != 0) {
|
||||
npages++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (pageaddr = 0, failure = 0, nread = 0;
|
||||
!failure && pageaddr < mem->size;
|
||||
pageaddr += mem->page_size) {
|
||||
/* check whether this page must be read */
|
||||
|
@ -400,7 +415,8 @@ int avr_read(PROGRAMMER * pgm, AVRPART * p, char * memtype,
|
|||
"%s: avr_read(): skipping page %u: no interesting data\n",
|
||||
progname, pageaddr / mem->page_size);
|
||||
}
|
||||
report_progress(pageaddr, mem->size, NULL);
|
||||
nread++;
|
||||
report_progress(nread, npages, NULL);
|
||||
}
|
||||
if (!failure) {
|
||||
if (strcasecmp(mem->desc, "flash") == 0 ||
|
||||
|
@ -901,8 +917,23 @@ int avr_write(PROGRAMMER * pgm, AVRPART * p, char * memtype, int size,
|
|||
*/
|
||||
int need_write, failure;
|
||||
unsigned int pageaddr;
|
||||
unsigned int npages, nwritten;
|
||||
|
||||
for (pageaddr = 0, failure = 0;
|
||||
/* quickly scan number of pages to be written to first */
|
||||
for (pageaddr = 0, npages = 0;
|
||||
pageaddr < wsize;
|
||||
pageaddr += m->page_size) {
|
||||
/* check whether this page must be written to */
|
||||
for (i = pageaddr;
|
||||
i < pageaddr + m->page_size;
|
||||
i++)
|
||||
if ((m->tags[i] & TAG_ALLOCATED) != 0) {
|
||||
npages++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (pageaddr = 0, failure = 0, nwritten = 0;
|
||||
!failure && pageaddr < wsize;
|
||||
pageaddr += m->page_size) {
|
||||
/* check whether this page must be written to */
|
||||
|
@ -927,7 +958,8 @@ int avr_write(PROGRAMMER * pgm, AVRPART * p, char * memtype, int size,
|
|||
"%s: avr_write(): skipping page %u: no interesting data\n",
|
||||
progname, pageaddr / m->page_size);
|
||||
}
|
||||
report_progress(pageaddr, m->size, NULL);
|
||||
nwritten++;
|
||||
report_progress(nwritten, npages, NULL);
|
||||
}
|
||||
if (!failure)
|
||||
return wsize;
|
||||
|
|
Loading…
Reference in New Issue