Some more CS improvements

flash: -2B
RAM: 0B
This commit is contained in:
Alex Voinea 2022-11-17 11:45:06 +01:00 committed by DRracer
parent 5305dbd299
commit b551bdae76
1 changed files with 8 additions and 12 deletions

View File

@ -210,11 +210,10 @@ static bool is_uninitialized(void* addr, uint8_t len)
//! @brief Read M500 configuration //! @brief Read M500 configuration
//! @retval true Succeeded. Stored settings retrieved or default settings retrieved in case EEPROM has been erased. //! @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 older version or corrupted data. //! @retval false Failed. Default settings has been retrieved, because of version mismatch
bool Config_RetrieveSettings() bool Config_RetrieveSettings()
{ {
bool previous_settings_retrieved = true;
static const char ver[4] PROGMEM = EEPROM_VERSION; static const char ver[4] PROGMEM = EEPROM_VERSION;
eeprom_read_block(reinterpret_cast<uint8_t*>(cs.version), reinterpret_cast<uint8_t*>(EEPROM_M500_base->version), sizeof(cs.version)); eeprom_read_block(reinterpret_cast<uint8_t*>(cs.version), reinterpret_cast<uint8_t*>(EEPROM_M500_base->version), sizeof(cs.version));
// SERIAL_ECHOLN("Version: [" << ver << "] Stored version: [" << cs.version << "]"); // SERIAL_ECHOLN("Version: [" << ver << "] Stored version: [" << cs.version << "]");
@ -283,16 +282,13 @@ bool Config_RetrieveSettings()
else else
{ {
Config_ResetDefault(); Config_ResetDefault();
//Return false to inform user that eeprom version was changed and firmware is using default hardcoded settings now. //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. //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<uint8_t*>(&(EEPROM_M500_base->version[0]))) != 0xFF || if (eeprom_is_initialized_block(EEPROM_M500_base->version, sizeof(EEPROM_M500_base->version))) {
eeprom_read_byte(reinterpret_cast<uint8_t*>(&(EEPROM_M500_base->version[1]))) != 0xFF || return false;
eeprom_read_byte(reinterpret_cast<uint8_t*>(&(EEPROM_M500_base->version[2]))) != 0xFF) }
{
previous_settings_retrieved = false;
} }
} return true;
return previous_settings_retrieved;
} }
#endif #endif