In C oder C++ kann man das Active Record Pattern so anpassen, dass save()
und load()
direkt auf EEPROM- oder Flash-Speicher zugreifen. Das funktioniert über Low-Level-APIs oder HAL-Funktionen (Hardware Abstraction Layer). Dabei wird typischerweise der Speicherblock einer festen Adresse zugeordnet.
void ConfigRecord::save() {
eeprom_write(address, reinterpret_cast<uint8_t*>(this), sizeof(ConfigRecord));
}
Wichtig ist, dass Datenstrukturen korrekt gepackt sind (#pragma pack
) und auf Speichergrenzen geachtet wird.