Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2021-08-25 12:53:00 +0300
committerDavid Crocker <dcrocker@eschertech.com>2021-08-25 12:53:38 +0300
commitd6a32f6a1979de5353e1cbf028b2794747b2a10d (patch)
tree50d9999ccad4c4e3d030be003cfcace3d3287b77
parent5b02fa6704860b289ae0a711f775a71d7afee8eb (diff)
Fall back to /sys if IAP not found in /firmware
-rw-r--r--src/Platform/RepRap.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/Platform/RepRap.cpp b/src/Platform/RepRap.cpp
index 9137bb14..f63efce3 100644
--- a/src/Platform/RepRap.cpp
+++ b/src/Platform/RepRap.cpp
@@ -2740,7 +2740,7 @@ bool RepRap::CheckFirmwareUpdatePrerequisites(const StringRef& reply, const Stri
return false;
}
- if (!platform->FileExists(FIRMWARE_DIRECTORY, IAP_UPDATE_FILE))
+ if (!platform->FileExists(FIRMWARE_DIRECTORY, IAP_UPDATE_FILE) && !platform->FileExists(DEFAULT_SYS_DIR, IAP_UPDATE_FILE))
{
reply.printf("In-application programming binary \"%s\" not found", FIRMWARE_DIRECTORY IAP_UPDATE_FILE);
return false;
@@ -2754,14 +2754,18 @@ bool RepRap::CheckFirmwareUpdatePrerequisites(const StringRef& reply, const Stri
void RepRap::UpdateFirmware(const StringRef& filenameRef) noexcept
{
#if HAS_MASS_STORAGE
- FileStore * const iapFile = platform->OpenFile(FIRMWARE_DIRECTORY, IAP_UPDATE_FILE, OpenMode::read);
+ FileStore * iapFile = platform->OpenFile(FIRMWARE_DIRECTORY, IAP_UPDATE_FILE, OpenMode::read);
if (iapFile == nullptr)
{
- platform->Message(FirmwareUpdateMessage, "IAP file '" FIRMWARE_DIRECTORY IAP_UPDATE_FILE "' not found\n");
- return;
+ iapFile = platform->OpenFile(DEFAULT_SYS_DIR, IAP_UPDATE_FILE, OpenMode::read);
+ if (iapFile == nullptr)
+ {
+ // This should not happen because we already checked that the file exists, so use a simplified error message
+ platform->Message(FirmwareUpdateMessage, "Missing IAP");
+ return;
+ }
}
-
PrepareToLoadIap();
// Use RAM-based IAP