From 449ec77f9ff5e589a4f3aa2903c473fb0131d9d0 Mon Sep 17 00:00:00 2001 From: Steins7 Date: Sun, 1 Sep 2024 22:43:14 +0200 Subject: [PATCH] Implement backup domain's data registers access --- drv/bkp.c | 9 +++++++++ drv/bkp.h | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/drv/bkp.c b/drv/bkp.c index 798d9e5..907b3fc 100644 --- a/drv/bkp.c +++ b/drv/bkp.c @@ -109,6 +109,15 @@ void bkp_reset(void) rcc_regs->BDCR.BDRST = 0; } +void bkp_write_data(enum BkpData data_index, uint16_t data) +{ + bkp_regs->DR[data_index].D = data; +} + +uint16_t bkp_read_data(enum BkpData data_index) +{ + return bkp_regs->DR[data_index].D; +} //--local functions------------------------------------------------------------- diff --git a/drv/bkp.h b/drv/bkp.h index 28da3f8..a2bb417 100644 --- a/drv/bkp.h +++ b/drv/bkp.h @@ -39,6 +39,19 @@ enum BkpRtcIrq { BKP_RTC_IRQ_OVERFLOW = 0x1 << 2, }; +enum BkpData { + BKP_DATA_LSI_CALIB, + BKP_DATA_1, + BKP_DATA_2, + BKP_DATA_3, + BKP_DATA_4, + BKP_DATA_5, + BKP_DATA_6, + BKP_DATA_7, + BKP_DATA_8, + BKP_DATA_9, +}; + /** * Prototype of the IRQ callbacks that the applicative code can provide */ @@ -92,6 +105,9 @@ uint32_t bkp_read_rtc(void); */ void bkp_reset(void); +void bkp_write_data(enum BkpData data_index, uint16_t data); +uint16_t bkp_read_data(enum BkpData data_index); + //unimplemented functions void bkp_configure_tamper(); void bkp_calibrate_lsi(void);