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"
#if ENABLED(EEPROM_SETTINGS) && DISABLED(FLASH_EEPROM_EMULATION)
#if ENABLED(SD_EEPROM_EMULATION)
#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; }
#endif // EEPROM_SETTINGS
#endif // SD_EEPROM_EMULATION
#endif // ARDUINO_ARCH_ESP32

View file

@ -28,7 +28,7 @@
#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"

View file

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

View file

@ -1734,3 +1734,7 @@
#define INIT_SDCARD_ON_BOOT
#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"
#if ENABLED(SD_EEPROM_EMULATION)
#include "../module/configuration_store.h"
#endif
#if ENABLED(POWER_LOSS_RECOVERY)
#include "../feature/power_loss_recovery.h"
#endif
@ -783,8 +787,13 @@ void MarlinUI::update() {
if (sd_status) {
safe_delay(500); // Some boards need a delay to get settled
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
}
else
set_status_P(PSTR(MSG_SD_INSERTED));
}

View file

@ -353,9 +353,6 @@ 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();
#endif
}
setroot();
@ -561,11 +558,6 @@ void CardReader::checkautostart() {
if (!isDetected()) initsd();
#if ENABLED(EEPROM_SETTINGS) && DISABLED(FLASH_EEPROM_EMULATION)
SERIAL_ECHOLNPGM("Loading settings from SD");
(void)settings.load();
#endif
if (isDetected()
#if ENABLED(POWER_LOSS_RECOVERY)
&& !recovery.valid() // Don't run auto#.g when a resume file exists