Fix issue with Esp8266/Esp32 platform reinitializing EEPROM multiple times causing it to forget staged EEPROM changes

This commit is contained in:
Simon Billemont 2022-04-12 20:29:46 +02:00
parent 2453c3ce5d
commit 16eeaa87af
2 changed files with 12 additions and 4 deletions

View File

@ -106,8 +106,12 @@ bool Esp32Platform::sendBytesUniCast(uint32_t addr, uint16_t port, uint8_t* buff
uint8_t * Esp32Platform::getEepromBuffer(uint16_t size) uint8_t * Esp32Platform::getEepromBuffer(uint16_t size)
{ {
EEPROM.begin(size); uint8_t * eepromptr = EEPROM.getDataPtr();
return EEPROM.getDataPtr(); if(eepromptr == nullptr) {
EEPROM.begin(KNX_FLASH_SIZE);
eepromptr = EEPROM.getDataPtr();
}
return eepromptr;
} }
void Esp32Platform::commitToEeprom() void Esp32Platform::commitToEeprom()

View File

@ -106,8 +106,12 @@ bool EspPlatform::sendBytesUniCast(uint32_t addr, uint16_t port, uint8_t* buffer
uint8_t * EspPlatform::getEepromBuffer(uint16_t size) uint8_t * EspPlatform::getEepromBuffer(uint16_t size)
{ {
EEPROM.begin(size); uint8_t * eepromptr = EEPROM.getDataPtr();
return EEPROM.getDataPtr(); if(eepromptr == nullptr) {
EEPROM.begin(KNX_FLASH_SIZE);
eepromptr = EEPROM.getDataPtr();
}
return eepromptr;
} }
void EspPlatform::commitToEeprom() void EspPlatform::commitToEeprom()