#[repr(C)]
pub struct RegisterBlock {
        pub cr1: CR1,
        pub cr2: CR2,
        pub smcr: SMCR,
        pub dier: DIER,
        pub sr: SR,
        pub egr: EGR,
    _reserved_6_ccmr1: [u8; 0x04],
    _reserved_7_ccmr2: [u8; 0x04],
        pub ccer: CCER,
        pub cnt: CNT,
        pub psc: PSC,
        pub arr: ARR,
        pub rcr: RCR,
        pub ccr1: CCR1,
        pub ccr2: CCR2,
        pub ccr3: CCR3,
        pub ccr4: CCR4,
        pub bdtr: BDTR,
        pub dcr: DCR,
        pub dmar: DMAR,
}
impl RegisterBlock {
        #[inline(always)]
    pub const fn ccmr1_input(&self) -> &CCMR1_INPUT {
        unsafe { &*(self as *const Self).cast::<u8>().add(24usize).cast() }
    }
        #[inline(always)]
    pub const fn ccmr1_output(&self) -> &CCMR1_OUTPUT {
        unsafe { &*(self as *const Self).cast::<u8>().add(24usize).cast() }
    }
        #[inline(always)]
    pub const fn ccmr2_input(&self) -> &CCMR2_INPUT {
        unsafe { &*(self as *const Self).cast::<u8>().add(28usize).cast() }
    }
        #[inline(always)]
    pub const fn ccmr2_output(&self) -> &CCMR2_OUTPUT {
        unsafe { &*(self as *const Self).cast::<u8>().add(28usize).cast() }
    }
}
pub type CR1 = crate::Reg<cr1::CR1_SPEC>;
pub mod cr1;
pub type CR2 = crate::Reg<cr2::CR2_SPEC>;
pub mod cr2;
pub type SMCR = crate::Reg<smcr::SMCR_SPEC>;
pub mod smcr;
pub type DIER = crate::Reg<dier::DIER_SPEC>;
pub mod dier;
pub type SR = crate::Reg<sr::SR_SPEC>;
pub mod sr;
pub type EGR = crate::Reg<egr::EGR_SPEC>;
pub mod egr;
pub type CCMR1_OUTPUT = crate::Reg<ccmr1_output::CCMR1_OUTPUT_SPEC>;
pub mod ccmr1_output;
pub type CCMR1_INPUT = crate::Reg<ccmr1_input::CCMR1_INPUT_SPEC>;
pub mod ccmr1_input;
pub type CCMR2_OUTPUT = crate::Reg<ccmr2_output::CCMR2_OUTPUT_SPEC>;
pub mod ccmr2_output;
pub type CCMR2_INPUT = crate::Reg<ccmr2_input::CCMR2_INPUT_SPEC>;
pub mod ccmr2_input;
pub type CCER = crate::Reg<ccer::CCER_SPEC>;
pub mod ccer;
pub type CNT = crate::Reg<cnt::CNT_SPEC>;
pub mod cnt;
pub type PSC = crate::Reg<psc::PSC_SPEC>;
pub mod psc;
pub type ARR = crate::Reg<arr::ARR_SPEC>;
pub mod arr;
pub type RCR = crate::Reg<rcr::RCR_SPEC>;
pub mod rcr;
pub type CCR1 = crate::Reg<ccr1::CCR1_SPEC>;
pub mod ccr1;
pub type CCR2 = crate::Reg<ccr2::CCR2_SPEC>;
pub mod ccr2;
pub type CCR3 = crate::Reg<ccr3::CCR3_SPEC>;
pub mod ccr3;
pub type CCR4 = crate::Reg<ccr4::CCR4_SPEC>;
pub mod ccr4;
pub type BDTR = crate::Reg<bdtr::BDTR_SPEC>;
pub mod bdtr;
pub type DCR = crate::Reg<dcr::DCR_SPEC>;
pub mod dcr;
pub type DMAR = crate::Reg<dmar::DMAR_SPEC>;
pub mod dmar;