Sort out settings.load with SD EEPROM emulation (#14458)

This commit is contained in:
Tanguy Pruvot 2019-07-01 16:10:17 +02:00 committed by Scott Lahteine
parent c9be936d4a
commit 108d0df565
6 changed files with 31 additions and 15 deletions

View file

@ -24,7 +24,7 @@
#include "../../inc/MarlinConfig.h" #include "../../inc/MarlinConfig.h"
#if ENABLED(EEPROM_SETTINGS) && DISABLED(FLASH_EEPROM_EMULATION) #if ENABLED(SD_EEPROM_EMULATION)
#include "../shared/persistent_store_api.h" #include "../shared/persistent_store_api.h"
@ -102,5 +102,5 @@ bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t
size_t PersistentStore::capacity() { return HAL_ESP32_EEPROM_SIZE; } size_t PersistentStore::capacity() { return HAL_ESP32_EEPROM_SIZE; }
#endif // EEPROM_SETTINGS #endif // SD_EEPROM_EMULATION
#endif // ARDUINO_ARCH_ESP32 #endif // ARDUINO_ARCH_ESP32

View file

@ -28,7 +28,7 @@
#include "../../inc/MarlinConfig.h" #include "../../inc/MarlinConfig.h"
#if ENABLED(EEPROM_SETTINGS) && NONE(FLASH_EEPROM_EMULATION, SPI_EEPROM, I2C_EEPROM) #if ENABLED(SD_EEPROM_EMULATION)
#include "../shared/persistent_store_api.h" #include "../shared/persistent_store_api.h"

View file

@ -941,7 +941,9 @@ void setup() {
// Load data from EEPROM if available (or use defaults) // Load data from EEPROM if available (or use defaults)
// This also updates variables in the planner, elsewhere // This also updates variables in the planner, elsewhere
(void)settings.load(); #if DISABLED(SD_EEPROM_EMULATION)
(void)settings.load();
#endif
#if HAS_M206_COMMAND #if HAS_M206_COMMAND
// Initialize current position based on home_offset // Initialize current position based on home_offset
@ -1094,8 +1096,17 @@ void setup() {
init_closedloop(); init_closedloop();
#endif #endif
#if ENABLED(INIT_SDCARD_ON_BOOT) && !HAS_SPI_LCD #if !HAS_SPI_LCD
card.beginautostart();
#if ENABLED(SD_EEPROM_EMULATION)
SERIAL_ECHOLNPGM("Loading settings from SD");
(void)settings.load();
#endif
#if ENABLED(INIT_SDCARD_ON_BOOT)
card.beginautostart();
#endif
#endif #endif
#if HAS_TRINAMIC && DISABLED(PS_DEFAULT_OFF) #if HAS_TRINAMIC && DISABLED(PS_DEFAULT_OFF)

View file

@ -1734,3 +1734,7 @@
#define INIT_SDCARD_ON_BOOT #define INIT_SDCARD_ON_BOOT
#endif #endif
#endif #endif
#if ENABLED(EEPROM_SETTINGS) && NONE(FLASH_EEPROM_EMULATION, SPI_EEPROM, I2C_EEPROM)
#define SD_EEPROM_EMULATION
#endif

View file

@ -81,6 +81,10 @@
#include "../Marlin.h" #include "../Marlin.h"
#if ENABLED(SD_EEPROM_EMULATION)
#include "../module/configuration_store.h"
#endif
#if ENABLED(POWER_LOSS_RECOVERY) #if ENABLED(POWER_LOSS_RECOVERY)
#include "../feature/power_loss_recovery.h" #include "../feature/power_loss_recovery.h"
#endif #endif
@ -783,8 +787,13 @@ void MarlinUI::update() {
if (sd_status) { if (sd_status) {
safe_delay(500); // Some boards need a delay to get settled safe_delay(500); // Some boards need a delay to get settled
card.initsd(); card.initsd();
if (old_sd_status == 2) if (old_sd_status == 2) {
#if ENABLED(SD_EEPROM_EMULATION)
SERIAL_ECHOLNPGM("Loading settings from SD");
(void)settings.load();
#endif
card.beginautostart(); // Initial boot card.beginautostart(); // Initial boot
}
else else
set_status_P(PSTR(MSG_SD_INSERTED)); set_status_P(PSTR(MSG_SD_INSERTED));
} }

View file

@ -353,9 +353,6 @@ void CardReader::initsd() {
else { else {
flag.detected = true; flag.detected = true;
SERIAL_ECHO_MSG(MSG_SD_CARD_OK); SERIAL_ECHO_MSG(MSG_SD_CARD_OK);
#if ENABLED(EEPROM_SETTINGS) && DISABLED(FLASH_EEPROM_EMULATION)
(void)settings.load();
#endif
} }
setroot(); setroot();
@ -561,11 +558,6 @@ void CardReader::checkautostart() {
if (!isDetected()) initsd(); if (!isDetected()) initsd();
#if ENABLED(EEPROM_SETTINGS) && DISABLED(FLASH_EEPROM_EMULATION)
SERIAL_ECHOLNPGM("Loading settings from SD");
(void)settings.load();
#endif
if (isDetected() if (isDetected()
#if ENABLED(POWER_LOSS_RECOVERY) #if ENABLED(POWER_LOSS_RECOVERY)
&& !recovery.valid() // Don't run auto#.g when a resume file exists && !recovery.valid() // Don't run auto#.g when a resume file exists