From b551bdae76ef6ed9906920db2fd50c98eca79e8e Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 17 Nov 2022 11:45:06 +0100 Subject: [PATCH] Some more CS improvements flash: -2B RAM: 0B --- Firmware/ConfigurationStore.cpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/Firmware/ConfigurationStore.cpp b/Firmware/ConfigurationStore.cpp index 4c4cd47ac..d71605b9e 100644 --- a/Firmware/ConfigurationStore.cpp +++ b/Firmware/ConfigurationStore.cpp @@ -210,11 +210,10 @@ static bool is_uninitialized(void* addr, uint8_t len) //! @brief Read M500 configuration -//! @retval true Succeeded. Stored settings retrieved or default settings retrieved in case EEPROM has been erased. -//! @retval false Failed. Default settings has been retrieved, because of older version or corrupted data. +//! @retval true Succeeded. Stored settings retrieved or default settings retrieved in case EEPROM cs was empty. +//! @retval false Failed. Default settings has been retrieved, because of version mismatch bool Config_RetrieveSettings() { - bool previous_settings_retrieved = true; static const char ver[4] PROGMEM = EEPROM_VERSION; eeprom_read_block(reinterpret_cast(cs.version), reinterpret_cast(EEPROM_M500_base->version), sizeof(cs.version)); // SERIAL_ECHOLN("Version: [" << ver << "] Stored version: [" << cs.version << "]"); @@ -283,16 +282,13 @@ bool Config_RetrieveSettings() else { Config_ResetDefault(); - //Return false to inform user that eeprom version was changed and firmware is using default hardcoded settings now. - //In case that storing to eeprom was not used yet, do not inform user that hardcoded settings are used. - if (eeprom_read_byte(reinterpret_cast(&(EEPROM_M500_base->version[0]))) != 0xFF || - eeprom_read_byte(reinterpret_cast(&(EEPROM_M500_base->version[1]))) != 0xFF || - eeprom_read_byte(reinterpret_cast(&(EEPROM_M500_base->version[2]))) != 0xFF) - { - previous_settings_retrieved = false; + //Return false to inform user that eeprom version was changed and firmware is using default hardcoded settings now. + //In case that storing to eeprom was not used yet, do not inform user that hardcoded settings are used. + if (eeprom_is_initialized_block(EEPROM_M500_base->version, sizeof(EEPROM_M500_base->version))) { + return false; + } } - } - return previous_settings_retrieved; + return true; } #endif