| /* |
| * 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; |
| } |