Prevent extra settings.load on boot (#14499)
This commit is contained in:
parent
dc02d0720d
commit
8873c583d3
|
@ -941,7 +941,7 @@ void setup() {
|
|||
|
||||
// Load data from EEPROM if available (or use defaults)
|
||||
// This also updates variables in the planner, elsewhere
|
||||
(void)settings.load();
|
||||
settings.first_load();
|
||||
|
||||
#if HAS_M206_COMMAND
|
||||
// Initialize current position based on home_offset
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
|
||||
class MarlinSettings {
|
||||
public:
|
||||
MarlinSettings() { }
|
||||
|
||||
static uint16_t datasize();
|
||||
|
||||
static void reset();
|
||||
|
@ -55,9 +53,15 @@ class MarlinSettings {
|
|||
#endif
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
|
||||
static bool load(); // Return 'true' if data was loaded ok
|
||||
static bool validate(); // Return 'true' if EEPROM data is ok
|
||||
|
||||
static inline void first_load() {
|
||||
static bool loaded = false;
|
||||
if (!loaded && load()) loaded = true;
|
||||
}
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
|
||||
// That can store is enabled
|
||||
static uint16_t meshes_start_index();
|
||||
|
@ -73,6 +77,8 @@ class MarlinSettings {
|
|||
#else
|
||||
FORCE_INLINE
|
||||
static bool load() { reset(); report(); return true; }
|
||||
FORCE_INLINE
|
||||
static void first_load() { (void)load(); }
|
||||
#endif
|
||||
|
||||
#if DISABLED(DISABLE_M503)
|
||||
|
|
|
@ -353,8 +353,8 @@ void CardReader::initsd() {
|
|||
else {
|
||||
flag.detected = true;
|
||||
SERIAL_ECHO_MSG(MSG_SD_CARD_OK);
|
||||
#if ENABLED(EEPROM_SETTINGS) && DISABLED(FLASH_EEPROM_EMULATION)
|
||||
(void)settings.load();
|
||||
#if ENABLED(EEPROM_SETTINGS) && NONE(FLASH_EEPROM_EMULATION, SPI_EEPROM, I2C_EEPROM)
|
||||
settings.first_load();
|
||||
#endif
|
||||
}
|
||||
setroot();
|
||||
|
@ -560,10 +560,8 @@ void CardReader::checkautostart() {
|
|||
if (autostart_index < 0 || flag.sdprinting) return;
|
||||
|
||||
if (!isDetected()) initsd();
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS) && DISABLED(FLASH_EEPROM_EMULATION)
|
||||
SERIAL_ECHOLNPGM("Loading settings from SD");
|
||||
(void)settings.load();
|
||||
#if ENABLED(EEPROM_SETTINGS) && NONE(FLASH_EEPROM_EMULATION, SPI_EEPROM, I2C_EEPROM)
|
||||
else settings.first_load();
|
||||
#endif
|
||||
|
||||
if (isDetected()
|
||||
|
|
Loading…
Reference in a new issue