Use real bootloader size when flashing

This commit is contained in:
Raphael Coeffic
2021-05-29 13:34:25 +02:00
committed by Raphael Coeffic
parent 954758c770
commit 8e57090d66
+7 -6
View File
@@ -67,6 +67,11 @@ void BootloaderFirmwareUpdate::flashFirmware(const char * filename, ProgressHand
POPUP_WARNING(STR_SDCARD_ERROR);
break;
}
if (count != sizeof(buffer)
&& !f_eof(&file)) {
POPUP_WARNING(STR_SDCARD_ERROR);
break;
}
if (i == 0 && !isBootloaderStart(buffer)) {
POPUP_WARNING(STR_INCOMPATIBLE);
break;
@@ -74,14 +79,10 @@ void BootloaderFirmwareUpdate::flashFirmware(const char * filename, ProgressHand
for (UINT j = 0; j < count; j += FLASH_PAGESIZE) {
flashWrite(CONVERT_UINT_PTR(FIRMWARE_ADDRESS + i + j), CONVERT_UINT_PTR(buffer + j));
}
// TODO: use real bootloader size rather than the maximum size
progressHandler("Bootloader", STR_WRITING, i, BOOTLOADER_SIZE);
progressHandler("Bootloader", STR_WRITING, i, file.obj.objsize);
// Reached end-of-file
if (count != sizeof(buffer)) {
break;
}
if (f_eof(&file)) break;
#if defined(SIMU)
// add an artificial delay and check for simu quit