Flash: Add progress bar to read/verify/blankcheck flashrom

This commit is contained in:
sanni 2024-07-19 22:18:22 +02:00
parent 68ae4b7111
commit dac242cd2f

View File

@ -1526,7 +1526,15 @@ void eraseFlash29F1610() {
// Set data pins to input again
dataIn8();
busyCheck29F1610();
// Read the status register
byte statusReg = readByte_Flash(0);
while ((statusReg & 0x80) != 0x80) {
statusReg = readByte_Flash(0);
// Blink led
blinkLED();
delay(100);
}
}
// Delay between write operations based on status register
@ -1857,17 +1865,34 @@ void writeFlashLH28F0XX() {
Common flashrom functions
*****************************************/
void blankcheck_Flash() {
println_Msg(F("Please wait..."));
display_Update();
//Initialize progress bar
uint32_t processedProgressBar = 0;
uint32_t totalProgressBar = flashSize;
draw_progressbar(0, totalProgressBar);
blank = 1;
for (unsigned long currByte = 0; currByte < flashSize; currByte++) {
for (unsigned long currBuffer = 0; currBuffer < flashSize; currBuffer += 512) {
// Fill buffer
for (int c = 0; c < 512; c++) {
// Read byte
sdBuffer[c] = readByte_Flash(currBuffer + c);
}
// Check if all bytes are 0xFF
if (readByte_Flash(currByte) != 0xFF) {
currByte = flashSize;
for (uint32_t currByte = 0; currByte < 512; currByte++) {
if (sdBuffer[currByte] != 0xFF) {
currByte = 512;
currBuffer = flashSize;
blank = 0;
}
}
// Update progress bar
processedProgressBar += 512;
draw_progressbar(processedProgressBar, totalProgressBar);
// Blink led
if (currBuffer % 25600 == 0)
blinkLED();
}
if (blank) {
println_Msg(F("Flashrom is empty"));
display_Update();
@ -1898,6 +1923,11 @@ void verifyFlash(byte romChips) {
fileSize = 0;
}
//Initialize progress bar
uint32_t processedProgressBar = 0;
uint32_t totalProgressBar = fileSize;
draw_progressbar(0, totalProgressBar);
for (unsigned long currByte = 0; currByte < fileSize; currByte += 512) {
//fill sdBuffer
myFile.read(sdBuffer, 512);
@ -1906,6 +1936,12 @@ void verifyFlash(byte romChips) {
blank++;
}
}
// Update progress bar
processedProgressBar += 512;
draw_progressbar(processedProgressBar, totalProgressBar);
// Blink led
if (currByte % 25600 == 0)
blinkLED();
}
if (blank == 0) {
println_Msg(F("Flashrom verified OK"));
@ -1927,11 +1963,22 @@ void readFlash() {
createFolderAndOpenFile("FLASH", NULL, "FL", "bin");
//Initialize progress bar
uint32_t processedProgressBar = 0;
uint32_t totalProgressBar = flashSize;
draw_progressbar(0, totalProgressBar);
for (unsigned long currByte = 0; currByte < flashSize; currByte += 512) {
for (int c = 0; c < 512; c++) {
sdBuffer[c] = readByte_Flash(currByte + c);
}
myFile.write(sdBuffer, 512);
// Update progress bar
processedProgressBar += 512;
draw_progressbar(processedProgressBar, totalProgressBar);
// Blink led
if (currByte % 25600 == 0)
blinkLED();
}
// Close the file: