12#define BACKUP_NOT_INITIALIZED 0xFFFF
13#define BACKUP_SAVED 0x5555
14#define BACKUP_PENDING 0x0000
17static volatile uint32_t
backupRam[(int)LAST_BACKUP_RAM_ENUM + 1];
21const size_t backupSize = ((int)LAST_BACKUP_RAM_ENUM + 1) *
sizeof(uint32_t);
24 static_assert(
backupSize <= BACKUP_FLASH_SIZE,
"Backup flash overflow");
25 static_assert(BACKUP_FLASH_ADDR != (
flashaddr_t)
nullptr,
"Backup address undefined");
66 syssts_t sts = chSysGetStatusAndLockX();
76 chSysRestoreStatusX(sts);
Non-volatile backup-RAM registers support.
static const int backupStateOffset
uint32_t backupRamLoad(backup_ram_e idx)
void backupRamSave(backup_ram_e idx, uint32_t value)
void backupRamFlush(void)
static volatile uint32_t backupRam[(int) LAST_BACKUP_RAM_ENUM+1]
static const int backupDataOffset
int intFlashErase(flashaddr_t address, size_t size)
Erase the sectors containing the span of size bytes starting at address.
uintptr_t flashaddr_t
Address in the flash memory.
int intFlashWrite(flashaddr_t address, const char *buffer, size_t size)
Copy data from a buffer to the flash memory.
int intFlashRead(flashaddr_t source, char *destination, size_t size)
Copy data from the flash memory to a destination.