xmc4100 0.6.0

XMC4100 Cortex-M peripheral access library
Documentation
#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
    _reserved0: [u8; 0x04],
    #[doc = "0x04 - Channel Configuration Register"]
    pub ccfg: CCFG,
    _reserved1: [u8; 0x04],
    #[doc = "0x0c - Kernel State Configuration Register"]
    pub kscfg: KSCFG,
    #[doc = "0x10 - Fractional Divider Register"]
    pub fdr: FDR,
    #[doc = "0x14 - Baud Rate Generator Register"]
    pub brg: BRG,
    #[doc = "0x18 - Interrupt Node Pointer Register"]
    pub inpr: INPR,
    #[doc = "0x1c - Input Control Register 0"]
    pub dx0cr: DX0CR,
    #[doc = "0x20 - Input Control Register 1"]
    pub dx1cr: DX1CR,
    #[doc = "0x24 - Input Control Register 2"]
    pub dx2cr: DX2CR,
    #[doc = "0x28 - Input Control Register 3"]
    pub dx3cr: DX3CR,
    #[doc = "0x2c - Input Control Register 4"]
    pub dx4cr: DX4CR,
    #[doc = "0x30 - Input Control Register 5"]
    pub dx5cr: DX5CR,
    #[doc = "0x34 - Shift Control Register"]
    pub sctr: SCTR,
    #[doc = "0x38 - Transmit Control/Status Register"]
    pub tcsr: TCSR,
    _reserved_13_pcr: [u8; 0x04],
    #[doc = "0x40 - Channel Control Register"]
    pub ccr: CCR,
    #[doc = "0x44 - Capture Mode Timer Register"]
    pub cmtr: CMTR,
    _reserved_16_psr: [u8; 0x04],
    #[doc = "0x4c - Protocol Status Clear Register"]
    pub pscr: PSCR,
    #[doc = "0x50 - Receiver Buffer Status Register"]
    pub rbufsr: RBUFSR,
    #[doc = "0x54 - Receiver Buffer Register"]
    pub rbuf: RBUF,
    #[doc = "0x58 - Receiver Buffer Register for Debugger"]
    pub rbufd: RBUFD,
    #[doc = "0x5c - Receiver Buffer Register 0"]
    pub rbuf0: RBUF0,
    #[doc = "0x60 - Receiver Buffer Register 1"]
    pub rbuf1: RBUF1,
    #[doc = "0x64 - Receiver Buffer 01 Status Register"]
    pub rbuf01sr: RBUF01SR,
    #[doc = "0x68 - Flag Modification Register"]
    pub fmr: FMR,
    _reserved25: [u8; 0x14],
    #[doc = "0x80..0x100 - Transmit Buffer"]
    pub tbuf: [TBUF; 32],
    #[doc = "0x100 - Bypass Data Register"]
    pub byp: BYP,
    #[doc = "0x104 - Bypass Control Register"]
    pub bypcr: BYPCR,
    #[doc = "0x108 - Transmitter Buffer Control Register"]
    pub tbctr: TBCTR,
    #[doc = "0x10c - Receiver Buffer Control Register"]
    pub rbctr: RBCTR,
    #[doc = "0x110 - Transmit/Receive Buffer Pointer Register"]
    pub trbptr: TRBPTR,
    #[doc = "0x114 - Transmit/Receive Buffer Status Register"]
    pub trbsr: TRBSR,
    #[doc = "0x118 - Transmit/Receive Buffer Status Clear Register"]
    pub trbscr: TRBSCR,
    #[doc = "0x11c - Receiver Buffer Output Register"]
    pub outr: OUTR,
    #[doc = "0x120 - Receiver Buffer Output Register L for Debugger"]
    pub outdr: OUTDR,
    _reserved35: [u8; 0x5c],
    #[doc = "0x180..0x200 - Transmit FIFO Buffer"]
    pub in_: [IN; 32],
}
impl RegisterBlock {
    #[doc = "0x3c - Protocol Control Register \\[IIS Mode\\]"]
    #[inline(always)]
    pub const fn pcr_iismode(&self) -> &PCR_IISMODE {
        unsafe { &*(self as *const Self).cast::<u8>().add(60usize).cast() }
    }
    #[doc = "0x3c - Protocol Control Register \\[IIC Mode\\]"]
    #[inline(always)]
    pub const fn pcr_iicmode(&self) -> &PCR_IICMODE {
        unsafe { &*(self as *const Self).cast::<u8>().add(60usize).cast() }
    }
    #[doc = "0x3c - Protocol Control Register \\[SSC Mode\\]"]
    #[inline(always)]
    pub const fn pcr_sscmode(&self) -> &PCR_SSCMODE {
        unsafe { &*(self as *const Self).cast::<u8>().add(60usize).cast() }
    }
    #[doc = "0x3c - Protocol Control Register \\[ASC Mode\\]"]
    #[inline(always)]
    pub const fn pcr_ascmode(&self) -> &PCR_ASCMODE {
        unsafe { &*(self as *const Self).cast::<u8>().add(60usize).cast() }
    }
    #[doc = "0x3c - Protocol Control Register"]
    #[inline(always)]
    pub const fn pcr(&self) -> &PCR {
        unsafe { &*(self as *const Self).cast::<u8>().add(60usize).cast() }
    }
    #[doc = "0x48 - Protocol Status Register \\[IIS Mode\\]"]
    #[inline(always)]
    pub const fn psr_iismode(&self) -> &PSR_IISMODE {
        unsafe { &*(self as *const Self).cast::<u8>().add(72usize).cast() }
    }
    #[doc = "0x48 - Protocol Status Register \\[IIC Mode\\]"]
    #[inline(always)]
    pub const fn psr_iicmode(&self) -> &PSR_IICMODE {
        unsafe { &*(self as *const Self).cast::<u8>().add(72usize).cast() }
    }
    #[doc = "0x48 - Protocol Status Register \\[SSC Mode\\]"]
    #[inline(always)]
    pub const fn psr_sscmode(&self) -> &PSR_SSCMODE {
        unsafe { &*(self as *const Self).cast::<u8>().add(72usize).cast() }
    }
    #[doc = "0x48 - Protocol Status Register \\[ASC Mode\\]"]
    #[inline(always)]
    pub const fn psr_ascmode(&self) -> &PSR_ASCMODE {
        unsafe { &*(self as *const Self).cast::<u8>().add(72usize).cast() }
    }
    #[doc = "0x48 - Protocol Status Register"]
    #[inline(always)]
    pub const fn psr(&self) -> &PSR {
        unsafe { &*(self as *const Self).cast::<u8>().add(72usize).cast() }
    }
}
#[doc = "CCFG (r) register accessor: an alias for `Reg<CCFG_SPEC>`"]
pub type CCFG = crate::Reg<ccfg::CCFG_SPEC>;
#[doc = "Channel Configuration Register"]
pub mod ccfg;
#[doc = "KSCFG (rw) register accessor: an alias for `Reg<KSCFG_SPEC>`"]
pub type KSCFG = crate::Reg<kscfg::KSCFG_SPEC>;
#[doc = "Kernel State Configuration Register"]
pub mod kscfg;
#[doc = "FDR (rw) register accessor: an alias for `Reg<FDR_SPEC>`"]
pub type FDR = crate::Reg<fdr::FDR_SPEC>;
#[doc = "Fractional Divider Register"]
pub mod fdr;
#[doc = "BRG (rw) register accessor: an alias for `Reg<BRG_SPEC>`"]
pub type BRG = crate::Reg<brg::BRG_SPEC>;
#[doc = "Baud Rate Generator Register"]
pub mod brg;
#[doc = "INPR (rw) register accessor: an alias for `Reg<INPR_SPEC>`"]
pub type INPR = crate::Reg<inpr::INPR_SPEC>;
#[doc = "Interrupt Node Pointer Register"]
pub mod inpr;
#[doc = "DX0CR (rw) register accessor: an alias for `Reg<DX0CR_SPEC>`"]
pub type DX0CR = crate::Reg<dx0cr::DX0CR_SPEC>;
#[doc = "Input Control Register 0"]
pub mod dx0cr;
#[doc = "DX1CR (rw) register accessor: an alias for `Reg<DX1CR_SPEC>`"]
pub type DX1CR = crate::Reg<dx1cr::DX1CR_SPEC>;
#[doc = "Input Control Register 1"]
pub mod dx1cr;
#[doc = "DX2CR (rw) register accessor: an alias for `Reg<DX2CR_SPEC>`"]
pub type DX2CR = crate::Reg<dx2cr::DX2CR_SPEC>;
#[doc = "Input Control Register 2"]
pub mod dx2cr;
#[doc = "DX3CR (rw) register accessor: an alias for `Reg<DX3CR_SPEC>`"]
pub type DX3CR = crate::Reg<dx3cr::DX3CR_SPEC>;
#[doc = "Input Control Register 3"]
pub mod dx3cr;
#[doc = "DX4CR (rw) register accessor: an alias for `Reg<DX4CR_SPEC>`"]
pub type DX4CR = crate::Reg<dx4cr::DX4CR_SPEC>;
#[doc = "Input Control Register 4"]
pub mod dx4cr;
#[doc = "DX5CR (rw) register accessor: an alias for `Reg<DX5CR_SPEC>`"]
pub type DX5CR = crate::Reg<dx5cr::DX5CR_SPEC>;
#[doc = "Input Control Register 5"]
pub mod dx5cr;
#[doc = "SCTR (rw) register accessor: an alias for `Reg<SCTR_SPEC>`"]
pub type SCTR = crate::Reg<sctr::SCTR_SPEC>;
#[doc = "Shift Control Register"]
pub mod sctr;
#[doc = "TCSR (rw) register accessor: an alias for `Reg<TCSR_SPEC>`"]
pub type TCSR = crate::Reg<tcsr::TCSR_SPEC>;
#[doc = "Transmit Control/Status Register"]
pub mod tcsr;
#[doc = "PCR (rw) register accessor: an alias for `Reg<PCR_SPEC>`"]
pub type PCR = crate::Reg<pcr::PCR_SPEC>;
#[doc = "Protocol Control Register"]
pub mod pcr;
#[doc = "PCR_ASCMode (rw) register accessor: an alias for `Reg<PCR_ASCMODE_SPEC>`"]
pub type PCR_ASCMODE = crate::Reg<pcr_ascmode::PCR_ASCMODE_SPEC>;
#[doc = "Protocol Control Register \\[ASC Mode\\]"]
pub mod pcr_ascmode;
#[doc = "PCR_SSCMode (rw) register accessor: an alias for `Reg<PCR_SSCMODE_SPEC>`"]
pub type PCR_SSCMODE = crate::Reg<pcr_sscmode::PCR_SSCMODE_SPEC>;
#[doc = "Protocol Control Register \\[SSC Mode\\]"]
pub mod pcr_sscmode;
#[doc = "PCR_IICMode (rw) register accessor: an alias for `Reg<PCR_IICMODE_SPEC>`"]
pub type PCR_IICMODE = crate::Reg<pcr_iicmode::PCR_IICMODE_SPEC>;
#[doc = "Protocol Control Register \\[IIC Mode\\]"]
pub mod pcr_iicmode;
#[doc = "PCR_IISMode (rw) register accessor: an alias for `Reg<PCR_IISMODE_SPEC>`"]
pub type PCR_IISMODE = crate::Reg<pcr_iismode::PCR_IISMODE_SPEC>;
#[doc = "Protocol Control Register \\[IIS Mode\\]"]
pub mod pcr_iismode;
#[doc = "CCR (rw) register accessor: an alias for `Reg<CCR_SPEC>`"]
pub type CCR = crate::Reg<ccr::CCR_SPEC>;
#[doc = "Channel Control Register"]
pub mod ccr;
#[doc = "CMTR (rw) register accessor: an alias for `Reg<CMTR_SPEC>`"]
pub type CMTR = crate::Reg<cmtr::CMTR_SPEC>;
#[doc = "Capture Mode Timer Register"]
pub mod cmtr;
#[doc = "PSR (rw) register accessor: an alias for `Reg<PSR_SPEC>`"]
pub type PSR = crate::Reg<psr::PSR_SPEC>;
#[doc = "Protocol Status Register"]
pub mod psr;
#[doc = "PSR_ASCMode (rw) register accessor: an alias for `Reg<PSR_ASCMODE_SPEC>`"]
pub type PSR_ASCMODE = crate::Reg<psr_ascmode::PSR_ASCMODE_SPEC>;
#[doc = "Protocol Status Register \\[ASC Mode\\]"]
pub mod psr_ascmode;
#[doc = "PSR_SSCMode (rw) register accessor: an alias for `Reg<PSR_SSCMODE_SPEC>`"]
pub type PSR_SSCMODE = crate::Reg<psr_sscmode::PSR_SSCMODE_SPEC>;
#[doc = "Protocol Status Register \\[SSC Mode\\]"]
pub mod psr_sscmode;
#[doc = "PSR_IICMode (rw) register accessor: an alias for `Reg<PSR_IICMODE_SPEC>`"]
pub type PSR_IICMODE = crate::Reg<psr_iicmode::PSR_IICMODE_SPEC>;
#[doc = "Protocol Status Register \\[IIC Mode\\]"]
pub mod psr_iicmode;
#[doc = "PSR_IISMode (rw) register accessor: an alias for `Reg<PSR_IISMODE_SPEC>`"]
pub type PSR_IISMODE = crate::Reg<psr_iismode::PSR_IISMODE_SPEC>;
#[doc = "Protocol Status Register \\[IIS Mode\\]"]
pub mod psr_iismode;
#[doc = "PSCR (w) register accessor: an alias for `Reg<PSCR_SPEC>`"]
pub type PSCR = crate::Reg<pscr::PSCR_SPEC>;
#[doc = "Protocol Status Clear Register"]
pub mod pscr;
#[doc = "RBUFSR (r) register accessor: an alias for `Reg<RBUFSR_SPEC>`"]
pub type RBUFSR = crate::Reg<rbufsr::RBUFSR_SPEC>;
#[doc = "Receiver Buffer Status Register"]
pub mod rbufsr;
#[doc = "RBUF (r) register accessor: an alias for `Reg<RBUF_SPEC>`"]
pub type RBUF = crate::Reg<rbuf::RBUF_SPEC>;
#[doc = "Receiver Buffer Register"]
pub mod rbuf;
#[doc = "RBUFD (r) register accessor: an alias for `Reg<RBUFD_SPEC>`"]
pub type RBUFD = crate::Reg<rbufd::RBUFD_SPEC>;
#[doc = "Receiver Buffer Register for Debugger"]
pub mod rbufd;
#[doc = "RBUF0 (r) register accessor: an alias for `Reg<RBUF0_SPEC>`"]
pub type RBUF0 = crate::Reg<rbuf0::RBUF0_SPEC>;
#[doc = "Receiver Buffer Register 0"]
pub mod rbuf0;
#[doc = "RBUF1 (r) register accessor: an alias for `Reg<RBUF1_SPEC>`"]
pub type RBUF1 = crate::Reg<rbuf1::RBUF1_SPEC>;
#[doc = "Receiver Buffer Register 1"]
pub mod rbuf1;
#[doc = "RBUF01SR (r) register accessor: an alias for `Reg<RBUF01SR_SPEC>`"]
pub type RBUF01SR = crate::Reg<rbuf01sr::RBUF01SR_SPEC>;
#[doc = "Receiver Buffer 01 Status Register"]
pub mod rbuf01sr;
#[doc = "FMR (w) register accessor: an alias for `Reg<FMR_SPEC>`"]
pub type FMR = crate::Reg<fmr::FMR_SPEC>;
#[doc = "Flag Modification Register"]
pub mod fmr;
#[doc = "TBUF (rw) register accessor: an alias for `Reg<TBUF_SPEC>`"]
pub type TBUF = crate::Reg<tbuf::TBUF_SPEC>;
#[doc = "Transmit Buffer"]
pub mod tbuf;
#[doc = "BYP (rw) register accessor: an alias for `Reg<BYP_SPEC>`"]
pub type BYP = crate::Reg<byp::BYP_SPEC>;
#[doc = "Bypass Data Register"]
pub mod byp;
#[doc = "BYPCR (rw) register accessor: an alias for `Reg<BYPCR_SPEC>`"]
pub type BYPCR = crate::Reg<bypcr::BYPCR_SPEC>;
#[doc = "Bypass Control Register"]
pub mod bypcr;
#[doc = "TBCTR (rw) register accessor: an alias for `Reg<TBCTR_SPEC>`"]
pub type TBCTR = crate::Reg<tbctr::TBCTR_SPEC>;
#[doc = "Transmitter Buffer Control Register"]
pub mod tbctr;
#[doc = "RBCTR (rw) register accessor: an alias for `Reg<RBCTR_SPEC>`"]
pub type RBCTR = crate::Reg<rbctr::RBCTR_SPEC>;
#[doc = "Receiver Buffer Control Register"]
pub mod rbctr;
#[doc = "TRBPTR (r) register accessor: an alias for `Reg<TRBPTR_SPEC>`"]
pub type TRBPTR = crate::Reg<trbptr::TRBPTR_SPEC>;
#[doc = "Transmit/Receive Buffer Pointer Register"]
pub mod trbptr;
#[doc = "TRBSR (rw) register accessor: an alias for `Reg<TRBSR_SPEC>`"]
pub type TRBSR = crate::Reg<trbsr::TRBSR_SPEC>;
#[doc = "Transmit/Receive Buffer Status Register"]
pub mod trbsr;
#[doc = "TRBSCR (w) register accessor: an alias for `Reg<TRBSCR_SPEC>`"]
pub type TRBSCR = crate::Reg<trbscr::TRBSCR_SPEC>;
#[doc = "Transmit/Receive Buffer Status Clear Register"]
pub mod trbscr;
#[doc = "OUTR (r) register accessor: an alias for `Reg<OUTR_SPEC>`"]
pub type OUTR = crate::Reg<outr::OUTR_SPEC>;
#[doc = "Receiver Buffer Output Register"]
pub mod outr;
#[doc = "OUTDR (r) register accessor: an alias for `Reg<OUTDR_SPEC>`"]
pub type OUTDR = crate::Reg<outdr::OUTDR_SPEC>;
#[doc = "Receiver Buffer Output Register L for Debugger"]
pub mod outdr;
#[doc = "IN (w) register accessor: an alias for `Reg<IN_SPEC>`"]
pub type IN = crate::Reg<in_::IN_SPEC>;
#[doc = "Transmit FIFO Buffer"]
pub mod in_;