198 lines
2.9 KiB
C
198 lines
2.9 KiB
C
/** @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_
|
|
|