#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister, WORegister};
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod TAMP_CR1 {
pub mod TAMP1E {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP2E {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP3E {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP1E {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP2E {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP3E {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP4E {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP5E {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP8E {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_CR2 {
pub mod TAMP1NOER {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP2NOER {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP3NOER {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP1MSK {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP2MSK {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP3MSK {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP1TRG {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP2TRG {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP3TRG {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_FLTCR {
pub mod TAMPFREQ {
pub const offset: u32 = 0;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMPFLT {
pub const offset: u32 = 3;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMPPRCH {
pub const offset: u32 = 5;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMPPUDIS {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_ATCR1 {
pub mod TAMP1AM {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP2AM {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP3AM {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ATOSEL1 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ATOSEL2 {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ATOSEL3 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ATCKSEL {
pub const offset: u32 = 16;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ATPER {
pub const offset: u32 = 24;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ATOSHARE {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FLTEN {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_ATSEEDR {
pub mod SEED {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_ATOR {
pub mod PRNG {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SEEDF {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod INITS {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_SMCR {
pub mod BKPRWDPROT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BKPWDPROT {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMPDPROT {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_IER {
pub mod TAMP1IE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP2IE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP3IE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP1IE {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP2IE {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP3IE {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP4IE {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP5IE {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP8IE {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_SR {
pub mod TAMP1F {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP2F {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP3F {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP1F {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP2F {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP3F {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP4F {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP5F {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP8F {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_MISR {
pub mod TAMP1MF {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP2MF {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMP3MF {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP1MF {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP2MF {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP3MF {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP4MF {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP5MF {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ITAMP8MF {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_SMISR {
pub use super::TAMP_MISR::ITAMP1MF;
pub use super::TAMP_MISR::ITAMP2MF;
pub use super::TAMP_MISR::ITAMP3MF;
pub use super::TAMP_MISR::ITAMP4MF;
pub use super::TAMP_MISR::ITAMP5MF;
pub use super::TAMP_MISR::ITAMP8MF;
pub use super::TAMP_MISR::TAMP1MF;
pub use super::TAMP_MISR::TAMP2MF;
pub use super::TAMP_MISR::TAMP3MF;
}
pub mod TAMP_SCR {
pub mod CTAMP1F {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTAMP2F {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTAMP3F {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CITAMP1F {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CITAMP2F {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CITAMP3F {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CITAMP4F {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CITAMP5F {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CITAMP8F {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_COUNTR {
pub mod COUNT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_CFGR {
pub mod OUT3_RMP {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_BKP0R {
pub mod BKP {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_BKP1R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP2R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP3R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP4R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP5R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP6R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP7R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP8R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP9R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP10R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP11R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP12R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP13R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP14R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP15R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP16R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP17R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP18R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP19R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP20R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP21R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP22R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP23R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP24R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP25R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP26R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP27R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP28R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP29R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP30R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_BKP31R {
pub use super::TAMP_BKP0R::BKP;
}
pub mod TAMP_HWCFGR2 {
pub mod OPTIONREG_OUT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TRUST_ZONE {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_HWCFGR1 {
pub mod BACKUP_REGS {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TAMPER {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ACTIVE_TAMPER {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod INT_TAMPER {
pub const offset: u32 = 16;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_VERR {
pub mod MINREV {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MAJREV {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_IPIDR {
pub mod ID {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TAMP_SIDR {
pub mod SID {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
#[repr(C)]
pub struct RegisterBlock {
pub TAMP_CR1: RWRegister<u32>,
pub TAMP_CR2: RWRegister<u32>,
_reserved1: [u32; 1],
pub TAMP_FLTCR: RWRegister<u32>,
pub TAMP_ATCR1: RWRegister<u32>,
pub TAMP_ATSEEDR: WORegister<u32>,
pub TAMP_ATOR: RORegister<u32>,
_reserved2: [u32; 1],
pub TAMP_SMCR: RWRegister<u32>,
_reserved3: [u32; 2],
pub TAMP_IER: RWRegister<u32>,
pub TAMP_SR: RORegister<u32>,
pub TAMP_MISR: RORegister<u32>,
pub TAMP_SMISR: RORegister<u32>,
pub TAMP_SCR: WORegister<u32>,
pub TAMP_COUNTR: RORegister<u32>,
_reserved4: [u32; 3],
pub TAMP_CFGR: RWRegister<u32>,
_reserved5: [u32; 43],
pub TAMP_BKP0R: RWRegister<u32>,
pub TAMP_BKP1R: RWRegister<u32>,
pub TAMP_BKP2R: RWRegister<u32>,
pub TAMP_BKP3R: RWRegister<u32>,
pub TAMP_BKP4R: RWRegister<u32>,
pub TAMP_BKP5R: RWRegister<u32>,
pub TAMP_BKP6R: RWRegister<u32>,
pub TAMP_BKP7R: RWRegister<u32>,
pub TAMP_BKP8R: RWRegister<u32>,
pub TAMP_BKP9R: RWRegister<u32>,
pub TAMP_BKP10R: RWRegister<u32>,
pub TAMP_BKP11R: RWRegister<u32>,
pub TAMP_BKP12R: RWRegister<u32>,
pub TAMP_BKP13R: RWRegister<u32>,
pub TAMP_BKP14R: RWRegister<u32>,
pub TAMP_BKP15R: RWRegister<u32>,
pub TAMP_BKP16R: RWRegister<u32>,
pub TAMP_BKP17R: RWRegister<u32>,
pub TAMP_BKP18R: RWRegister<u32>,
pub TAMP_BKP19R: RWRegister<u32>,
pub TAMP_BKP20R: RWRegister<u32>,
pub TAMP_BKP21R: RWRegister<u32>,
pub TAMP_BKP22R: RWRegister<u32>,
pub TAMP_BKP23R: RWRegister<u32>,
pub TAMP_BKP24R: RWRegister<u32>,
pub TAMP_BKP25R: RWRegister<u32>,
pub TAMP_BKP26R: RWRegister<u32>,
pub TAMP_BKP27R: RWRegister<u32>,
pub TAMP_BKP28R: RWRegister<u32>,
pub TAMP_BKP29R: RWRegister<u32>,
pub TAMP_BKP30R: RWRegister<u32>,
pub TAMP_BKP31R: RWRegister<u32>,
_reserved6: [u32; 155],
pub TAMP_HWCFGR2: RORegister<u32>,
pub TAMP_HWCFGR1: RORegister<u32>,
pub TAMP_VERR: RORegister<u32>,
pub TAMP_IPIDR: RORegister<u32>,
pub TAMP_SIDR: RORegister<u32>,
}
pub struct ResetValues {
pub TAMP_CR1: u32,
pub TAMP_CR2: u32,
pub TAMP_FLTCR: u32,
pub TAMP_ATCR1: u32,
pub TAMP_ATSEEDR: u32,
pub TAMP_ATOR: u32,
pub TAMP_SMCR: u32,
pub TAMP_IER: u32,
pub TAMP_SR: u32,
pub TAMP_MISR: u32,
pub TAMP_SMISR: u32,
pub TAMP_SCR: u32,
pub TAMP_COUNTR: u32,
pub TAMP_CFGR: u32,
pub TAMP_BKP0R: u32,
pub TAMP_BKP1R: u32,
pub TAMP_BKP2R: u32,
pub TAMP_BKP3R: u32,
pub TAMP_BKP4R: u32,
pub TAMP_BKP5R: u32,
pub TAMP_BKP6R: u32,
pub TAMP_BKP7R: u32,
pub TAMP_BKP8R: u32,
pub TAMP_BKP9R: u32,
pub TAMP_BKP10R: u32,
pub TAMP_BKP11R: u32,
pub TAMP_BKP12R: u32,
pub TAMP_BKP13R: u32,
pub TAMP_BKP14R: u32,
pub TAMP_BKP15R: u32,
pub TAMP_BKP16R: u32,
pub TAMP_BKP17R: u32,
pub TAMP_BKP18R: u32,
pub TAMP_BKP19R: u32,
pub TAMP_BKP20R: u32,
pub TAMP_BKP21R: u32,
pub TAMP_BKP22R: u32,
pub TAMP_BKP23R: u32,
pub TAMP_BKP24R: u32,
pub TAMP_BKP25R: u32,
pub TAMP_BKP26R: u32,
pub TAMP_BKP27R: u32,
pub TAMP_BKP28R: u32,
pub TAMP_BKP29R: u32,
pub TAMP_BKP30R: u32,
pub TAMP_BKP31R: u32,
pub TAMP_HWCFGR2: u32,
pub TAMP_HWCFGR1: u32,
pub TAMP_VERR: u32,
pub TAMP_IPIDR: u32,
pub TAMP_SIDR: u32,
}
#[cfg(not(feature = "nosync"))]
pub struct Instance {
pub(crate) addr: u32,
pub(crate) _marker: PhantomData<*const RegisterBlock>,
}
#[cfg(not(feature = "nosync"))]
impl ::core::ops::Deref for Instance {
type Target = RegisterBlock;
#[inline(always)]
fn deref(&self) -> &RegisterBlock {
unsafe { &*(self.addr as *const _) }
}
}
#[cfg(feature = "rtic")]
unsafe impl Send for Instance {}
pub mod TAMP {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x5c00a000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
TAMP_CR1: 0xFFFF0000,
TAMP_CR2: 0x00000000,
TAMP_FLTCR: 0x00000000,
TAMP_ATCR1: 0x00070000,
TAMP_ATSEEDR: 0x00000000,
TAMP_ATOR: 0x00000000,
TAMP_SMCR: 0x80000000,
TAMP_IER: 0x00000000,
TAMP_SR: 0x00000000,
TAMP_MISR: 0x00000000,
TAMP_SMISR: 0x00000000,
TAMP_SCR: 0x00000000,
TAMP_COUNTR: 0x00000000,
TAMP_CFGR: 0x00000000,
TAMP_BKP0R: 0x00000000,
TAMP_BKP1R: 0x00000000,
TAMP_BKP2R: 0x00000000,
TAMP_BKP3R: 0x00000000,
TAMP_BKP4R: 0x00000000,
TAMP_BKP5R: 0x00000000,
TAMP_BKP6R: 0x00000000,
TAMP_BKP7R: 0x00000000,
TAMP_BKP8R: 0x00000000,
TAMP_BKP9R: 0x00000000,
TAMP_BKP10R: 0x00000000,
TAMP_BKP11R: 0x00000000,
TAMP_BKP12R: 0x00000000,
TAMP_BKP13R: 0x00000000,
TAMP_BKP14R: 0x00000000,
TAMP_BKP15R: 0x00000000,
TAMP_BKP16R: 0x00000000,
TAMP_BKP17R: 0x00000000,
TAMP_BKP18R: 0x00000000,
TAMP_BKP19R: 0x00000000,
TAMP_BKP20R: 0x00000000,
TAMP_BKP21R: 0x00000000,
TAMP_BKP22R: 0x00000000,
TAMP_BKP23R: 0x00000000,
TAMP_BKP24R: 0x00000000,
TAMP_BKP25R: 0x00000000,
TAMP_BKP26R: 0x00000000,
TAMP_BKP27R: 0x00000000,
TAMP_BKP28R: 0x00000000,
TAMP_BKP29R: 0x00000000,
TAMP_BKP30R: 0x00000000,
TAMP_BKP31R: 0x00000000,
TAMP_HWCFGR2: 0x00000101,
TAMP_HWCFGR1: 0x009D1320,
TAMP_VERR: 0x00000010,
TAMP_IPIDR: 0x00121033,
TAMP_SIDR: 0xA3C5DD01,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut TAMP_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if TAMP_TAKEN {
None
} else {
TAMP_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if TAMP_TAKEN && inst.addr == INSTANCE.addr {
TAMP_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
TAMP_TAKEN = true;
INSTANCE
}
}
pub const TAMP: *const RegisterBlock = 0x5c00a000 as *const _;