/** @file bkp_regs.h * Module defining the Backup (bkp) domain registers. * * Mainly made to be used by the bkp module. It is recommanded to go through * the functions provided by that module instead of directly using the registers * defined here. */ #ifndef _BKP_REGS_H_ #define _BKP_REGS_H_ //--includes-------------------------------------------------------------------- #include "stdint.h" //--type definitions------------------------------------------------------------ #define BKP_BASE_ADDRESS 0x40006C00 #define RCC_BASE_ADDRESS 0x40021020 #define RTC_BASE_ADDRESS 0x40002800 union BKP_DR { struct { uint32_t D:16; uint32_t reserved1:16; }; uint32_t word; }; union BKP_RTCCR { struct { uint32_t CAL:7; uint32_t CCO:1; uint32_t ASOE:1; uint32_t ASOS:1; uint32_t reserved1:22; }; uint32_t word; }; union BKP_CR { struct { uint32_t TPE:1; uint32_t TPAL:1; uint32_t reserved1:30; }; uint32_t word; }; union BKP_CSR { struct { uint32_t CTE:1; uint32_t CTI:1; uint32_t TPIE:1; uint32_t reserved1:5; uint32_t TEF:1; uint32_t TIF:1; uint32_t reserved2:22; }; uint32_t word; }; struct BKP { uint32_t reserved1; union BKP_DR DR[20]; union BKP_RTCCR RTCCR; union BKP_CR CR; union BKP_CSR CSR; }; union RCC_BDCR { struct { uint32_t LSEON:1; uint32_t LSERDY:1; uint32_t LSEBYP:1; uint32_t reserved1:5; uint32_t RTCSEL:2; uint32_t reserved2:5; uint32_t RTCEN:1; uint32_t BDRST:1; uint32_t reserved3:15; }; uint32_t word; }; struct RCC { union RCC_BDCR BDCR; }; union RTC_CRH { struct { uint32_t SECIE:1; uint32_t ALRIE:1; uint32_t OWIE:1; uint32_t reserved1:29; }; uint32_t word; }; union RTC_CRL { struct { uint32_t SECF:1; uint32_t ALRF:1; uint32_t OWF:1; uint32_t RSF:1; uint32_t CNF:1; uint32_t RTOFF:1; uint32_t reserved1:26; }; uint32_t word; }; union RTC_PRLH { struct { uint32_t PRL:4; uint32_t reserved1:28; }; uint32_t word; }; union RTC_PRLL { struct { uint32_t PRL:16; uint32_t reserved1:16; }; uint32_t word; }; union RTC_DIVH { struct { uint32_t RTC_DIV:4; uint32_t reserved1:28; }; uint32_t word; }; union RTC_DIVL { struct { uint32_t RTC_DIV:16; uint32_t reserved1:16; }; uint32_t word; }; union RTC_CNTH { struct { uint32_t RTC_CNT:16; uint32_t reserved1:16; }; uint32_t word; }; union RTC_CNTL { struct { uint32_t RTC_CNT:16; uint32_t reserved1:16; }; uint32_t word; }; union RTC_ALRH { struct { uint32_t RTC_ALR:16; uint32_t reserved1:16; }; uint32_t word; }; union RTC_ALRL { struct { uint32_t RTC_ALR:16; uint32_t reserved1:16; }; uint32_t word; }; struct RTC { union RTC_CRH CRH; union RTC_CRL CRL; union RTC_PRLH PRLH; union RTC_PRLL PRLL; union RTC_DIVH DIVH; union RTC_DIVL DIVL; union RTC_CNTH CNTH; union RTC_CNTL CNTL; union RTC_ALRH ALRH; union RTC_ALRL ALRL; }; //--functions------------------------------------------------------------------- #endif //_BKP_REGS_H_