|
@@ -40,16 +40,17 @@ bool find_firmware_image(FsFile &file, char name[MAX_FILE_PATH + 1])
|
|
|
|
|
|
|
|
bool program_firmware(FsFile &file)
|
|
bool program_firmware(FsFile &file)
|
|
|
{
|
|
{
|
|
|
- uint32_t fwsize = file.size() - PLATFORM_BOOTLOADER_SIZE;
|
|
|
|
|
|
|
+ uint32_t filesize = file.size();
|
|
|
|
|
+ uint32_t fwsize = filesize - PLATFORM_BOOTLOADER_SIZE;
|
|
|
uint32_t num_pages = (fwsize + PLATFORM_FLASH_PAGE_SIZE - 1) / PLATFORM_FLASH_PAGE_SIZE;
|
|
uint32_t num_pages = (fwsize + PLATFORM_FLASH_PAGE_SIZE - 1) / PLATFORM_FLASH_PAGE_SIZE;
|
|
|
|
|
|
|
|
// Make sure the buffer is aligned to word boundary
|
|
// Make sure the buffer is aligned to word boundary
|
|
|
static uint32_t buffer32[PLATFORM_FLASH_PAGE_SIZE / 4];
|
|
static uint32_t buffer32[PLATFORM_FLASH_PAGE_SIZE / 4];
|
|
|
uint8_t *buffer = (uint8_t*)buffer32;
|
|
uint8_t *buffer = (uint8_t*)buffer32;
|
|
|
|
|
|
|
|
- if (fwsize > PLATFORM_FLASH_TOTAL_SIZE)
|
|
|
|
|
|
|
+ if (filesize > PLATFORM_FLASH_TOTAL_SIZE)
|
|
|
{
|
|
{
|
|
|
- log("Firmware too large: ", (int)fwsize, " flash size ", (int)PLATFORM_FLASH_TOTAL_SIZE);
|
|
|
|
|
|
|
+ log("Firmware too large: ", (int)filesize, " flash size ", (int)PLATFORM_FLASH_TOTAL_SIZE);
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|