Add SD Firmware Update capability (#12043)
Co-Authored-By: timoxd7 <timoxd7@users.noreply.github.com>
This commit is contained in:
@ -376,6 +376,32 @@ void MarlinSettings::postprocess() {
|
||||
report_current_position();
|
||||
}
|
||||
|
||||
#if ENABLED(SD_FIRMWARE_UPDATE)
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
static_assert(
|
||||
!WITHIN(SD_FIRMWARE_UPDATE_EEPROM_ADDR, EEPROM_OFFSET, EEPROM_OFFSET + sizeof(SettingsData)),
|
||||
"SD_FIRMWARE_UPDATE_EEPROM_ADDR collides with EEPROM settings storage."
|
||||
);
|
||||
#endif
|
||||
|
||||
bool MarlinSettings::sd_update_status() {
|
||||
uint8_t val;
|
||||
persistentStore.read_data(SD_FIRMWARE_UPDATE_EEPROM_ADDR, &val);
|
||||
return (val == SD_FIRMWARE_UPDATE_ACTIVE_VALUE);
|
||||
}
|
||||
|
||||
bool MarlinSettings::set_sd_update_status(const bool enable) {
|
||||
if (enable != sd_update_status())
|
||||
persistentStore.write_data(
|
||||
SD_FIRMWARE_UPDATE_EEPROM_ADDR,
|
||||
enable ? SD_FIRMWARE_UPDATE_ACTIVE_VALUE : SD_FIRMWARE_UPDATE_INACTIVE_VALUE
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // SD_FIRMWARE_UPDATE
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
#include "../HAL/shared/persistent_store_api.h"
|
||||
|
||||
|
@ -61,6 +61,11 @@ class MarlinSettings {
|
||||
#endif
|
||||
}
|
||||
|
||||
#if ENABLED(SD_FIRMWARE_UPDATE)
|
||||
static bool sd_update_status(); // True if the SD-Firmware-Update EEPROM flag is set
|
||||
static bool set_sd_update_status(const bool enable); // Return 'true' after EEPROM is set (-> always true)
|
||||
#endif
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
static bool load(PORTINIT_SOLO); // Return 'true' if data was loaded ok
|
||||
static bool validate(PORTINIT_SOLO); // Return 'true' if EEPROM data is ok
|
||||
|
Reference in New Issue
Block a user