blob: 833bf5ee4a50cb536f94a0fb0283db5736f56838 [file] [log] [blame]
/*
* Copyright (c) 2021 Teslabs Engineering S.L.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/device.h>
#include <zephyr/kernel.h>
#include <zephyr/sys/printk.h>
#if DT_HAS_COMPAT_STATUS_OKAY(st_stm32_backup_sram)
#define BACKUP_DEV_COMPAT st_stm32_backup_sram
#endif
/** Value stored in backup SRAM. */
__stm32_backup_sram_section uint32_t backup_value;
int main(void)
{
const struct device *const dev = DEVICE_DT_GET_ONE(BACKUP_DEV_COMPAT);
if (!device_is_ready(dev)) {
printk("ERROR: BackUp SRAM device is not ready\n");
return 0;
}
printk("Current value in backup SRAM (%p): %d\n", &backup_value, backup_value);
backup_value++;
#if __DCACHE_PRESENT
SCB_CleanDCache_by_Addr(&backup_value, sizeof(backup_value));
#endif
printk("Next reported value should be: %d\n", backup_value);
printk("Keep VBAT power source and reset the board now!\n");
return 0;
}