#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister, UnsafeRWRegister, WORegister};
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod ISR {
pub mod TEIF7 {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HTIF7 {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TCIF7 {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GIF7 {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TEIF6 {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HTIF6 {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TCIF6 {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GIF6 {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TEIF5 {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HTIF5 {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TCIF5 {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GIF5 {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TEIF4 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HTIF4 {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TCIF4 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GIF4 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TEIF3 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HTIF3 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TCIF3 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GIF3 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TEIF2 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HTIF2 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TCIF2 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GIF2 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TEIF1 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HTIF1 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TCIF1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GIF1 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod IFCR {
pub mod CTEIF7 {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CHTIF7 {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTCIF7 {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CGIF7 {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTEIF6 {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CHTIF6 {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTCIF6 {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CGIF6 {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTEIF5 {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CHTIF5 {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTCIF5 {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CGIF5 {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTEIF4 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CHTIF4 {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTCIF4 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CGIF4 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTEIF3 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CHTIF3 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTCIF3 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CGIF3 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTEIF2 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CHTIF2 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTCIF2 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CGIF2 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTEIF1 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CHTIF1 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTCIF1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CGIF1 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CCR1 {
pub mod MEM2MEM {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PL {
pub const offset: u32 = 12;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MSIZE {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PSIZE {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MINC {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PINC {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CIRC {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DIR {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TEIE {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HTIE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TCIE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CNDTR1 {
pub mod NDT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CPAR1 {
pub mod PA {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CMAR1 {
pub mod MA {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CCR2 {
pub use super::CCR1::CIRC;
pub use super::CCR1::DIR;
pub use super::CCR1::EN;
pub use super::CCR1::HTIE;
pub use super::CCR1::MEM2MEM;
pub use super::CCR1::MINC;
pub use super::CCR1::MSIZE;
pub use super::CCR1::PINC;
pub use super::CCR1::PL;
pub use super::CCR1::PSIZE;
pub use super::CCR1::TCIE;
pub use super::CCR1::TEIE;
}
pub mod CNDTR2 {
pub use super::CNDTR1::NDT;
}
pub mod CPAR2 {
pub use super::CPAR1::PA;
}
pub mod CMAR2 {
pub use super::CMAR1::MA;
}
pub mod CCR3 {
pub use super::CCR1::CIRC;
pub use super::CCR1::DIR;
pub use super::CCR1::EN;
pub use super::CCR1::HTIE;
pub use super::CCR1::MEM2MEM;
pub use super::CCR1::MINC;
pub use super::CCR1::MSIZE;
pub use super::CCR1::PINC;
pub use super::CCR1::PL;
pub use super::CCR1::PSIZE;
pub use super::CCR1::TCIE;
pub use super::CCR1::TEIE;
}
pub mod CNDTR3 {
pub use super::CNDTR1::NDT;
}
pub mod CPAR3 {
pub use super::CPAR1::PA;
}
pub mod CMAR3 {
pub use super::CMAR1::MA;
}
pub mod CCR4 {
pub use super::CCR1::CIRC;
pub use super::CCR1::DIR;
pub use super::CCR1::EN;
pub use super::CCR1::HTIE;
pub use super::CCR1::MEM2MEM;
pub use super::CCR1::MINC;
pub use super::CCR1::MSIZE;
pub use super::CCR1::PINC;
pub use super::CCR1::PL;
pub use super::CCR1::PSIZE;
pub use super::CCR1::TCIE;
pub use super::CCR1::TEIE;
}
pub mod CNDTR4 {
pub use super::CNDTR1::NDT;
}
pub mod CPAR4 {
pub use super::CPAR1::PA;
}
pub mod CMAR4 {
pub use super::CMAR1::MA;
}
pub mod CCR5 {
pub use super::CCR1::CIRC;
pub use super::CCR1::DIR;
pub use super::CCR1::EN;
pub use super::CCR1::HTIE;
pub use super::CCR1::MEM2MEM;
pub use super::CCR1::MINC;
pub use super::CCR1::MSIZE;
pub use super::CCR1::PINC;
pub use super::CCR1::PL;
pub use super::CCR1::PSIZE;
pub use super::CCR1::TCIE;
pub use super::CCR1::TEIE;
}
pub mod CNDTR5 {
pub use super::CNDTR1::NDT;
}
pub mod CPAR5 {
pub use super::CPAR1::PA;
}
pub mod CMAR5 {
pub use super::CMAR1::MA;
}
pub mod CCR6 {
pub use super::CCR1::CIRC;
pub use super::CCR1::DIR;
pub use super::CCR1::EN;
pub use super::CCR1::HTIE;
pub use super::CCR1::MEM2MEM;
pub use super::CCR1::MINC;
pub use super::CCR1::MSIZE;
pub use super::CCR1::PINC;
pub use super::CCR1::PL;
pub use super::CCR1::PSIZE;
pub use super::CCR1::TCIE;
pub use super::CCR1::TEIE;
}
pub mod CNDTR6 {
pub use super::CNDTR1::NDT;
}
pub mod CPAR6 {
pub use super::CPAR1::PA;
}
pub mod CMAR6 {
pub use super::CMAR1::MA;
}
pub mod CCR7 {
pub use super::CCR1::CIRC;
pub use super::CCR1::DIR;
pub use super::CCR1::EN;
pub use super::CCR1::HTIE;
pub use super::CCR1::MEM2MEM;
pub use super::CCR1::MINC;
pub use super::CCR1::MSIZE;
pub use super::CCR1::PINC;
pub use super::CCR1::PL;
pub use super::CCR1::PSIZE;
pub use super::CCR1::TCIE;
pub use super::CCR1::TEIE;
}
pub mod CNDTR7 {
pub use super::CNDTR1::NDT;
}
pub mod CPAR7 {
pub use super::CPAR1::PA;
}
pub mod CMAR7 {
pub use super::CMAR1::MA;
}
pub mod CSELR {
pub mod C7S {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod C6S {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod C5S {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod C4S {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod C3S {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod C2S {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod C1S {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
#[repr(C)]
pub struct RegisterBlock {
pub ISR: RORegister<u32>,
pub IFCR: WORegister<u32>,
pub CCR1: RWRegister<u32>,
pub CNDTR1: RWRegister<u32>,
pub CPAR1: UnsafeRWRegister<u32>,
pub CMAR1: UnsafeRWRegister<u32>,
_reserved1: [u8; 4],
pub CCR2: RWRegister<u32>,
pub CNDTR2: RWRegister<u32>,
pub CPAR2: UnsafeRWRegister<u32>,
pub CMAR2: UnsafeRWRegister<u32>,
_reserved2: [u8; 4],
pub CCR3: RWRegister<u32>,
pub CNDTR3: RWRegister<u32>,
pub CPAR3: UnsafeRWRegister<u32>,
pub CMAR3: UnsafeRWRegister<u32>,
_reserved3: [u8; 4],
pub CCR4: RWRegister<u32>,
pub CNDTR4: RWRegister<u32>,
pub CPAR4: UnsafeRWRegister<u32>,
pub CMAR4: UnsafeRWRegister<u32>,
_reserved4: [u8; 4],
pub CCR5: RWRegister<u32>,
pub CNDTR5: RWRegister<u32>,
pub CPAR5: UnsafeRWRegister<u32>,
pub CMAR5: UnsafeRWRegister<u32>,
_reserved5: [u8; 4],
pub CCR6: RWRegister<u32>,
pub CNDTR6: RWRegister<u32>,
pub CPAR6: UnsafeRWRegister<u32>,
pub CMAR6: UnsafeRWRegister<u32>,
_reserved6: [u8; 4],
pub CCR7: RWRegister<u32>,
pub CNDTR7: RWRegister<u32>,
pub CPAR7: UnsafeRWRegister<u32>,
pub CMAR7: UnsafeRWRegister<u32>,
_reserved7: [u8; 24],
pub CSELR: RWRegister<u32>,
}
pub struct ResetValues {
pub ISR: u32,
pub IFCR: u32,
pub CCR1: u32,
pub CNDTR1: u32,
pub CPAR1: u32,
pub CMAR1: u32,
pub CCR2: u32,
pub CNDTR2: u32,
pub CPAR2: u32,
pub CMAR2: u32,
pub CCR3: u32,
pub CNDTR3: u32,
pub CPAR3: u32,
pub CMAR3: u32,
pub CCR4: u32,
pub CNDTR4: u32,
pub CPAR4: u32,
pub CMAR4: u32,
pub CCR5: u32,
pub CNDTR5: u32,
pub CPAR5: u32,
pub CMAR5: u32,
pub CCR6: u32,
pub CNDTR6: u32,
pub CPAR6: u32,
pub CMAR6: u32,
pub CCR7: u32,
pub CNDTR7: u32,
pub CPAR7: u32,
pub CMAR7: u32,
pub CSELR: 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 DMA2 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40020400,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
ISR: 0x00000000,
IFCR: 0x00000000,
CCR1: 0x00000000,
CNDTR1: 0x00000000,
CPAR1: 0x00000000,
CMAR1: 0x00000000,
CCR2: 0x00000000,
CNDTR2: 0x00000000,
CPAR2: 0x00000000,
CMAR2: 0x00000000,
CCR3: 0x00000000,
CNDTR3: 0x00000000,
CPAR3: 0x00000000,
CMAR3: 0x00000000,
CCR4: 0x00000000,
CNDTR4: 0x00000000,
CPAR4: 0x00000000,
CMAR4: 0x00000000,
CCR5: 0x00000000,
CNDTR5: 0x00000000,
CPAR5: 0x00000000,
CMAR5: 0x00000000,
CCR6: 0x00000000,
CNDTR6: 0x00000000,
CPAR6: 0x00000000,
CMAR6: 0x00000000,
CCR7: 0x00000000,
CNDTR7: 0x00000000,
CPAR7: 0x00000000,
CMAR7: 0x00000000,
CSELR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut DMA2_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if DMA2_TAKEN {
None
} else {
DMA2_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if DMA2_TAKEN && inst.addr == INSTANCE.addr {
DMA2_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
DMA2_TAKEN = true;
INSTANCE
}
}
pub const DMA2: *const RegisterBlock = 0x40020400 as *const _;