diff --git a/src/knx/memory.cpp b/src/knx/memory.cpp index f146e67..f53a1a1 100644 --- a/src/knx/memory.cpp +++ b/src/knx/memory.cpp @@ -92,7 +92,7 @@ void Memory::readMemory() void Memory::writeMemory() { // first get the necessary size of the writeBuffer - size_t writeBufferSize = 16; + size_t writeBufferSize = _metadataSize; for (int i = 0; i < _saveCount; i++) writeBufferSize = MAX(writeBufferSize, _saveRestores[i]->saveSize()); @@ -375,7 +375,7 @@ void Memory::addToFreeList(MemoryBlock* block) uint16_t Memory::alignToPageSize(size_t size) { - size_t pageSize = _platform.flashPageSize(); + size_t pageSize = 4; //_platform.flashPageSize(); // align to 32bit for now, as aligning to flash-page-size causes side effects in programming // pagesize should be a multiply of two return (size + pageSize - 1) & (-1*pageSize); } diff --git a/src/knx/platform.h b/src/knx/platform.h index 14fb881..2aaf758 100644 --- a/src/knx/platform.h +++ b/src/knx/platform.h @@ -57,11 +57,13 @@ class Platform //Memory - // --- Legacy support only. Do not use for new plattforms --- - // --- can be remove if all plattforms have been changed to support the NonVolatileMemory functions + // --- Overwrite these methods in the device-plattform to use the EEPROM Emulation API for UserMemory ---- + // + // --- changes to the UserMemory are written directly into the address space starting at getEepromBuffer + // --- commitToEeprom must save this to a non-volatile area if neccessary virtual uint8_t* getEepromBuffer(uint16_t size); virtual void commitToEeprom(); - // ------------------------------------------------------------------------------------------------------- + // ------------------------------------------------------------------------------------------------------- virtual uint8_t* getNonVolatileMemoryStart(); virtual size_t getNonVolatileMemorySize(); diff --git a/src/rp2040_arduino_platform.h b/src/rp2040_arduino_platform.h index 3c28703..8a9e7f3 100644 --- a/src/rp2040_arduino_platform.h +++ b/src/rp2040_arduino_platform.h @@ -23,7 +23,7 @@ public: void setupUart(); // unique serial number - uint32_t uniqueSerialNumber(); //override; + uint32_t uniqueSerialNumber() override; void restart();