6#if !defined(_ARDUNIO_EEPROM_ABS_H) && !defined(__MBED__) && !defined(BUILD_FOR_PICO_CMAKE) && !defined(BUILD_FOR_STM32CUBE_CMAKE)
7#define _ARDUNIO_EEPROM_ABS_H
32 EEPROMClass* eepromProxy;
34 ArduinoEEPROMAbstraction(EEPROMClass* proxy) {
35 this->eepromProxy = proxy;
39 return eepromProxy->read(position);
43 return eepromProxy->read(pos + 1) << 8 | eepromProxy->read(pos);
47 return (uint32_t)eepromProxy->read(pos + 3) << 24 | (uint32_t)eepromProxy->read(pos + 2) << 16 |
48 (uint32_t)eepromProxy->read(pos + 1) << 8 | (uint32_t)eepromProxy->read(pos + 0);
52 eepromProxy->write(pos, val);
56 eepromProxy->write(pos, val);
58 eepromProxy->write(pos + 1, (uint8_t)val);
62 eepromProxy->write(pos, (uint8_t)val);
64 eepromProxy->write(pos + 1, (uint8_t)val);
66 eepromProxy->write(pos + 2, (uint8_t)val);
68 eepromProxy->write(pos + 3, (uint8_t)val);
72 for(
int i=0;i<len;i++) {
73 *memDest = eepromProxy->read(romSrc + i);
79 for(
int i=0;i<len;i++) {
80 eepromProxy->write(romDest + i, *memSrc);
Wraps up EEPROM support in a way that is compatible between implementations. For example presently th...
uint16_t EepromPosition
Definition EepromAbstraction.h:26
uint32_t read32(EepromPosition pos) override
Definition ArduinoEEPROMAbstraction.h:46
void write32(EepromPosition pos, uint32_t val) override
Definition ArduinoEEPROMAbstraction.h:61
uint16_t read16(EepromPosition pos) override
Definition ArduinoEEPROMAbstraction.h:42
void write8(EepromPosition pos, uint8_t val) override
Definition ArduinoEEPROMAbstraction.h:51
uint8_t read8(EepromPosition position) override
Definition ArduinoEEPROMAbstraction.h:38
void readIntoMemArray(uint8_t *memDest, EepromPosition romSrc, uint8_t len) override
Definition ArduinoEEPROMAbstraction.h:71
void writeArrayToRom(EepromPosition romDest, const uint8_t *memSrc, uint8_t len) override
Definition ArduinoEEPROMAbstraction.h:78
void write16(EepromPosition pos, uint16_t val) override
Definition ArduinoEEPROMAbstraction.h:55
Definition EepromAbstraction.h:33