mirror of https://github.com/YosysHQ/icestorm.git
iceprog: Add write and read progress indication.
This commit is contained in:
parent
7afc64b480
commit
549fd314a0
|
|
@ -966,10 +966,14 @@ int main(int argc, char **argv)
|
||||||
rc = fread(buffer, 1, page_size, f);
|
rc = fread(buffer, 1, page_size, f);
|
||||||
if (rc <= 0)
|
if (rc <= 0)
|
||||||
break;
|
break;
|
||||||
|
fprintf(stderr, " \r");
|
||||||
|
fprintf(stderr, "addr 0x%06X %3ld%%\r", rw_offset + addr, addr / (file_size / 100));
|
||||||
flash_write_enable();
|
flash_write_enable();
|
||||||
flash_prog(rw_offset + addr, buffer, rc);
|
flash_prog(rw_offset + addr, buffer, rc);
|
||||||
flash_wait();
|
flash_wait();
|
||||||
}
|
}
|
||||||
|
fprintf(stderr, " \r");
|
||||||
|
fprintf(stderr, "done.\n");
|
||||||
|
|
||||||
/* seek to the beginning for second pass */
|
/* seek to the beginning for second pass */
|
||||||
fseek(f, 0, SEEK_SET);
|
fseek(f, 0, SEEK_SET);
|
||||||
|
|
@ -984,9 +988,13 @@ int main(int argc, char **argv)
|
||||||
fprintf(stderr, "reading..\n");
|
fprintf(stderr, "reading..\n");
|
||||||
for (int addr = 0; addr < read_size; addr += 256) {
|
for (int addr = 0; addr < read_size; addr += 256) {
|
||||||
uint8_t buffer[256];
|
uint8_t buffer[256];
|
||||||
|
fprintf(stderr, " \r");
|
||||||
|
fprintf(stderr, "addr 0x%06X %3d%%\r", rw_offset + addr, addr / (read_size / 100));
|
||||||
flash_read(rw_offset + addr, buffer, 256);
|
flash_read(rw_offset + addr, buffer, 256);
|
||||||
fwrite(buffer, read_size - addr > 256 ? 256 : read_size - addr, 1, f);
|
fwrite(buffer, read_size - addr > 256 ? 256 : read_size - addr, 1, f);
|
||||||
}
|
}
|
||||||
|
fprintf(stderr, " \r");
|
||||||
|
fprintf(stderr, "done.\n");
|
||||||
} else if (!erase_mode && !disable_verify) {
|
} else if (!erase_mode && !disable_verify) {
|
||||||
fprintf(stderr, "reading..\n");
|
fprintf(stderr, "reading..\n");
|
||||||
for (int addr = 0; true; addr += 256) {
|
for (int addr = 0; true; addr += 256) {
|
||||||
|
|
@ -994,6 +1002,8 @@ int main(int argc, char **argv)
|
||||||
int rc = fread(buffer_file, 1, 256, f);
|
int rc = fread(buffer_file, 1, 256, f);
|
||||||
if (rc <= 0)
|
if (rc <= 0)
|
||||||
break;
|
break;
|
||||||
|
fprintf(stderr, " \r");
|
||||||
|
fprintf(stderr, "addr 0x%06X %3ld%%\r", rw_offset + addr, addr / (file_size / 100));
|
||||||
flash_read(rw_offset + addr, buffer_flash, rc);
|
flash_read(rw_offset + addr, buffer_flash, rc);
|
||||||
if (memcmp(buffer_file, buffer_flash, rc)) {
|
if (memcmp(buffer_file, buffer_flash, rc)) {
|
||||||
fprintf(stderr, "Found difference between flash and file!\n");
|
fprintf(stderr, "Found difference between flash and file!\n");
|
||||||
|
|
@ -1001,6 +1011,7 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fprintf(stderr, " \r");
|
||||||
fprintf(stderr, "VERIFY OK\n");
|
fprintf(stderr, "VERIFY OK\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue