/*
|
|
|
|
EEPROM MODULE
|
|
|
|
*/
|
|
|
|
// XXX: with case insensitive filesystem, if named eeprom.h *could*
|
|
// be included as EEPROM.h and fail after including rotate library down below
|
|
|
|
#pragma once
|
|
|
|
#include <EEPROM_Rotate.h>
|
|
|
|
#include "espurna.h"
|
|
|
|
// Note: backwards compatibility requires us to reserve these much bytes at the start.
|
|
// main reason right now is EEPROM_Rotate crc bytes
|
|
constexpr size_t EepromReservedSize = 14;
|
|
|
|
// "The library uses 3 bytes to track last valid sector, so there must be at least 3"
|
|
// Reserve addresses 11, 12 and 13 for EEPROM_Rotate
|
|
constexpr int EepromRotateOffset = 11;
|
|
constexpr size_t EepromRotateReservedSize = 3;
|
|
|
|
constexpr size_t EepromSize = SPI_FLASH_SEC_SIZE;
|
|
|
|
extern EEPROM_Rotate EEPROMr;
|
|
|
|
bool eepromReady();
|
|
|
|
void eepromSectorsDebug();
|
|
void eepromRotate(bool value);
|
|
uint32_t eepromCurrent();
|
|
String eepromSectors();
|
|
|
|
void eepromBackup(uint32_t index);
|
|
void eepromCommit();
|
|
|
|
void eepromSetup();
|