|
@@ -447,36 +447,19 @@ void MarlinSettings::postprocess() {
|
447
|
447
|
|
448
|
448
|
#if ENABLED(EEPROM_SETTINGS)
|
449
|
449
|
|
450
|
|
- #define WORD_PADDED_EEPROM ENABLED(__STM32F1__, FLASH_EEPROM_EMULATION)
|
451
|
|
-
|
452
|
|
- #if WORD_PADDED_EEPROM && ENABLED(DEBUG_EEPROM_READWRITE)
|
453
|
|
- #define UPDATE_TEST_INDEX(VAR) (test_index += sizeof(VAR))
|
454
|
|
- #else
|
455
|
|
- #define UPDATE_TEST_INDEX(VAR) NOOP
|
456
|
|
- #endif
|
457
|
|
- #if WORD_PADDED_EEPROM
|
458
|
|
- #define EEPROM_SKIP(VAR) do{ eeprom_index += sizeof(VAR) + (sizeof(VAR) & 1); UPDATE_TEST_INDEX(sizeof(VAR)); }while(0)
|
459
|
|
- #else
|
460
|
|
- #define EEPROM_SKIP(VAR) (eeprom_index += sizeof(VAR))
|
461
|
|
- #endif
|
462
|
|
-
|
463
|
450
|
#define EEPROM_START() if (!persistentStore.access_start()) { SERIAL_ECHO_MSG("No EEPROM."); return false; } \
|
464
|
451
|
int eeprom_index = EEPROM_OFFSET
|
465
|
452
|
#define EEPROM_FINISH() persistentStore.access_finish()
|
466
|
|
- #define EEPROM_WRITE(VAR) do{ persistentStore.write_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR), &working_crc); UPDATE_TEST_INDEX(VAR); }while(0)
|
467
|
|
- #define EEPROM_READ(VAR) do{ persistentStore.read_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR), &working_crc, !validating); UPDATE_TEST_INDEX(VAR); }while(0)
|
468
|
|
- #define EEPROM_READ_ALWAYS(VAR) do{ persistentStore.read_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR), &working_crc); UPDATE_TEST_INDEX(VAR); }while(0)
|
|
453
|
+ #define EEPROM_SKIP(VAR) (eeprom_index += sizeof(VAR))
|
|
454
|
+ #define EEPROM_WRITE(VAR) do{ persistentStore.write_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR), &working_crc); }while(0)
|
|
455
|
+ #define EEPROM_READ(VAR) do{ persistentStore.read_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR), &working_crc, !validating); }while(0)
|
|
456
|
+ #define EEPROM_READ_ALWAYS(VAR) do{ persistentStore.read_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR), &working_crc); }while(0)
|
469
|
457
|
#define EEPROM_ASSERT(TST,ERR) do{ if (!(TST)) { SERIAL_ERROR_MSG(ERR); eeprom_error = true; } }while(0)
|
470
|
458
|
|
471
|
459
|
#if ENABLED(DEBUG_EEPROM_READWRITE)
|
472
|
|
- #if WORD_PADDED_EEPROM
|
473
|
|
- int test_index;
|
474
|
|
- #else
|
475
|
|
- #define test_index eeprom_index
|
476
|
|
- #endif
|
477
|
460
|
#define _FIELD_TEST(FIELD) \
|
478
|
461
|
EEPROM_ASSERT( \
|
479
|
|
- eeprom_error || test_index == offsetof(SettingsData, FIELD) + EEPROM_OFFSET, \
|
|
462
|
+ eeprom_error || eeprom_index == offsetof(SettingsData, FIELD) + EEPROM_OFFSET, \
|
480
|
463
|
"Field " STRINGIFY(FIELD) " mismatch." \
|
481
|
464
|
)
|
482
|
465
|
#else
|