mirror of
https://github.com/thelsing/knx.git
synced 2025-08-31 13:47:01 +02:00
- writebuffersize clarified (PR discussion)
- changed alignment from flashpagesize to 32bit - added override modifier (PR discussion) - changed comment regarding flash/eeprom functions for plattforms to override/implement (PR discussion)
This commit is contained in:
parent
4513e1de2a
commit
76654f3310
@ -92,7 +92,7 @@ void Memory::readMemory()
|
|||||||
void Memory::writeMemory()
|
void Memory::writeMemory()
|
||||||
{
|
{
|
||||||
// first get the necessary size of the writeBuffer
|
// first get the necessary size of the writeBuffer
|
||||||
size_t writeBufferSize = 16;
|
size_t writeBufferSize = _metadataSize;
|
||||||
for (int i = 0; i < _saveCount; i++)
|
for (int i = 0; i < _saveCount; i++)
|
||||||
writeBufferSize = MAX(writeBufferSize, _saveRestores[i]->saveSize());
|
writeBufferSize = MAX(writeBufferSize, _saveRestores[i]->saveSize());
|
||||||
|
|
||||||
@ -375,7 +375,7 @@ void Memory::addToFreeList(MemoryBlock* block)
|
|||||||
|
|
||||||
uint16_t Memory::alignToPageSize(size_t size)
|
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
|
// pagesize should be a multiply of two
|
||||||
return (size + pageSize - 1) & (-1*pageSize);
|
return (size + pageSize - 1) & (-1*pageSize);
|
||||||
}
|
}
|
||||||
|
@ -57,11 +57,13 @@ class Platform
|
|||||||
|
|
||||||
//Memory
|
//Memory
|
||||||
|
|
||||||
// --- Legacy support only. Do not use for new plattforms ---
|
// --- Overwrite these methods in the device-plattform to use the EEPROM Emulation API for UserMemory ----
|
||||||
// --- can be remove if all plattforms have been changed to support the NonVolatileMemory functions
|
//
|
||||||
|
// --- 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 uint8_t* getEepromBuffer(uint16_t size);
|
||||||
virtual void commitToEeprom();
|
virtual void commitToEeprom();
|
||||||
// -------------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
virtual uint8_t* getNonVolatileMemoryStart();
|
virtual uint8_t* getNonVolatileMemoryStart();
|
||||||
virtual size_t getNonVolatileMemorySize();
|
virtual size_t getNonVolatileMemorySize();
|
||||||
|
@ -23,7 +23,7 @@ public:
|
|||||||
void setupUart();
|
void setupUart();
|
||||||
|
|
||||||
// unique serial number
|
// unique serial number
|
||||||
uint32_t uniqueSerialNumber(); //override;
|
uint32_t uniqueSerialNumber() override;
|
||||||
|
|
||||||
void restart();
|
void restart();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user