12 #ifndef KNX_FLASH_SIZE
13 #define KNX_FLASH_SIZE 1024
54 void readMemory(uint32_t relativeAddress,
size_t size, uint8_t*
data);
66 uint16_t alignToPageSize(
size_t size);
69 void addNewUsedBlock(uint8_t* address,
size_t size);
71 void readEraseBlockToBuffer(uint32_t blockNum);
72 uint8_t* eraseBlockStart(uint32_t blockNum);
73 uint8_t* eraseBlockEnd(uint32_t blockNum);
74 void saveBufferdEraseBlock();
81 uint8_t _saveCount = 0;
82 uint8_t _tableObjCount = 0;
85 uint16_t _metadataSize = 6 + LEN_HARDWARE_TYPE;
86 unsigned long _saveTimeout = 0;
MemoryBlock(uint8_t *address, size_t size)
void freeMemory(uint8_t *ptr)
uint8_t * toAbsolute(uint32_t relativeAddress)
uint32_t toRelative(uint8_t *absoluteAddress)
VersionCheckCallback versionCheckCallback()
void addSaveRestore(SaveRestore *obj)
uint8_t * allocMemory(size_t size)
Memory(Platform &platform, DeviceObject &deviceObject)
Interface for classes that can save and restore data from a buffer.
This class provides common functionality for interface objects that are configured by ETS with MemorW...
uint8_t * data()
returns the internal data of the interface object.
@ FlashTablesInvalid
All table objects are invalid for this firmware, device object and saveRestores are OK.
@ FlashAllInvalid
All flash content is not valid for this firmware, we delete it.
@ FlashValid
Flash content is valid and will be used.
VersionCheckResult(* VersionCheckCallback)(uint16_t manufacturerId, uint8_t *hardwareType, uint16_t version)