#![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 ISR {
pub mod GIF1 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NoEvent: u32 = 0b0;
pub const Event: u32 = 0b1;
}
}
pub mod TCIF1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NotComplete: u32 = 0b0;
pub const Complete: u32 = 0b1;
}
}
pub mod HTIF1 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NotHalf: u32 = 0b0;
pub const Half: u32 = 0b1;
}
}
pub mod TEIF1 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NoError: u32 = 0b0;
pub const Error: u32 = 0b1;
}
}
pub mod GIF2 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::GIF1::RW;
}
pub mod TCIF2 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TCIF1::RW;
}
pub mod HTIF2 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::HTIF1::RW;
}
pub mod TEIF2 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TEIF1::RW;
}
pub mod GIF3 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::GIF1::RW;
}
pub mod TCIF3 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TCIF1::RW;
}
pub mod HTIF3 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::HTIF1::RW;
}
pub mod TEIF3 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TEIF1::RW;
}
pub mod GIF4 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::GIF1::RW;
}
pub mod TCIF4 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TCIF1::RW;
}
pub mod HTIF4 {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::HTIF1::RW;
}
pub mod TEIF4 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TEIF1::RW;
}
pub mod GIF5 {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::GIF1::RW;
}
pub mod TCIF5 {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TCIF1::RW;
}
pub mod HTIF5 {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::HTIF1::RW;
}
pub mod TEIF5 {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TEIF1::RW;
}
pub mod GIF6 {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::GIF1::RW;
}
pub mod TCIF6 {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TCIF1::RW;
}
pub mod HTIF6 {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::HTIF1::RW;
}
pub mod TEIF6 {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TEIF1::RW;
}
pub mod GIF7 {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::GIF1::RW;
}
pub mod TCIF7 {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TCIF1::RW;
}
pub mod HTIF7 {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::HTIF1::RW;
}
pub mod TEIF7 {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TEIF1::RW;
}
}
pub mod IFCR {
pub mod CGIF1 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Clear: u32 = 0b1;
}
}
pub mod CTCIF1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Clear: u32 = 0b1;
}
}
pub mod CHTIF1 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Clear: u32 = 0b1;
}
}
pub mod CTEIF1 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Clear: u32 = 0b1;
}
}
pub mod CGIF2 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CGIF1::RW;
}
pub mod CTCIF2 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTCIF1::RW;
}
pub mod CHTIF2 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CHTIF1::RW;
}
pub mod CTEIF2 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTEIF1::RW;
}
pub mod CGIF3 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CGIF1::RW;
}
pub mod CTCIF3 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTCIF1::RW;
}
pub mod CHTIF3 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CHTIF1::RW;
}
pub mod CTEIF3 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTEIF1::RW;
}
pub mod CGIF4 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CGIF1::RW;
}
pub mod CTCIF4 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTCIF1::RW;
}
pub mod CHTIF4 {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CHTIF1::RW;
}
pub mod CTEIF4 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTEIF1::RW;
}
pub mod CGIF5 {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CGIF1::RW;
}
pub mod CTCIF5 {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTCIF1::RW;
}
pub mod CHTIF5 {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CHTIF1::RW;
}
pub mod CTEIF5 {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTEIF1::RW;
}
pub mod CGIF6 {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CGIF1::RW;
}
pub mod CTCIF6 {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTCIF1::RW;
}
pub mod CHTIF6 {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CHTIF1::RW;
}
pub mod CTEIF6 {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTEIF1::RW;
}
pub mod CGIF7 {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CGIF1::RW;
}
pub mod CTCIF7 {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTCIF1::RW;
}
pub mod CHTIF7 {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CHTIF1::RW;
}
pub mod CTEIF7 {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::CTEIF1::RW;
}
}
pub mod CR1 {
pub mod EN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod TCIE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod HTIE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod TEIE {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod DIR {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FromPeripheral: u32 = 0b0;
pub const FromMemory: u32 = 0b1;
}
}
pub mod CIRC {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod PINC {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod MINC {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::PINC::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 const Bits8: u32 = 0b00;
pub const Bits16: u32 = 0b01;
pub const Bits32: u32 = 0b10;
}
}
pub mod MSIZE {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PSIZE::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 const Low: u32 = 0b00;
pub const Medium: u32 = 0b01;
pub const High: u32 = 0b10;
pub const VeryHigh: u32 = 0b11;
}
}
pub mod MEM2MEM {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
}
pub mod NDTR1 {
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 PAR1 {
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 MAR1 {
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 CR2 {
pub use super::CR1::CIRC;
pub use super::CR1::DIR;
pub use super::CR1::EN;
pub use super::CR1::HTIE;
pub use super::CR1::MEM2MEM;
pub use super::CR1::MINC;
pub use super::CR1::MSIZE;
pub use super::CR1::PINC;
pub use super::CR1::PL;
pub use super::CR1::PSIZE;
pub use super::CR1::TCIE;
pub use super::CR1::TEIE;
}
pub mod NDTR2 {
pub use super::NDTR1::NDT;
}
pub mod PAR2 {
pub use super::PAR1::PA;
}
pub mod MAR2 {
pub use super::MAR1::MA;
}
pub mod CR3 {
pub use super::CR1::CIRC;
pub use super::CR1::DIR;
pub use super::CR1::EN;
pub use super::CR1::HTIE;
pub use super::CR1::MEM2MEM;
pub use super::CR1::MINC;
pub use super::CR1::MSIZE;
pub use super::CR1::PINC;
pub use super::CR1::PL;
pub use super::CR1::PSIZE;
pub use super::CR1::TCIE;
pub use super::CR1::TEIE;
}
pub mod NDTR3 {
pub use super::NDTR1::NDT;
}
pub mod PAR3 {
pub use super::PAR1::PA;
}
pub mod MAR3 {
pub use super::MAR1::MA;
}
pub mod CR4 {
pub use super::CR1::CIRC;
pub use super::CR1::DIR;
pub use super::CR1::EN;
pub use super::CR1::HTIE;
pub use super::CR1::MEM2MEM;
pub use super::CR1::MINC;
pub use super::CR1::MSIZE;
pub use super::CR1::PINC;
pub use super::CR1::PL;
pub use super::CR1::PSIZE;
pub use super::CR1::TCIE;
pub use super::CR1::TEIE;
}
pub mod NDTR4 {
pub use super::NDTR1::NDT;
}
pub mod PAR4 {
pub use super::PAR1::PA;
}
pub mod MAR4 {
pub use super::MAR1::MA;
}
pub mod CR5 {
pub use super::CR1::CIRC;
pub use super::CR1::DIR;
pub use super::CR1::EN;
pub use super::CR1::HTIE;
pub use super::CR1::MEM2MEM;
pub use super::CR1::MINC;
pub use super::CR1::MSIZE;
pub use super::CR1::PINC;
pub use super::CR1::PL;
pub use super::CR1::PSIZE;
pub use super::CR1::TCIE;
pub use super::CR1::TEIE;
}
pub mod NDTR5 {
pub use super::NDTR1::NDT;
}
pub mod PAR5 {
pub use super::PAR1::PA;
}
pub mod MAR5 {
pub use super::MAR1::MA;
}
pub mod CR6 {
pub use super::CR1::CIRC;
pub use super::CR1::DIR;
pub use super::CR1::EN;
pub use super::CR1::HTIE;
pub use super::CR1::MEM2MEM;
pub use super::CR1::MINC;
pub use super::CR1::MSIZE;
pub use super::CR1::PINC;
pub use super::CR1::PL;
pub use super::CR1::PSIZE;
pub use super::CR1::TCIE;
pub use super::CR1::TEIE;
}
pub mod NDTR6 {
pub use super::NDTR1::NDT;
}
pub mod PAR6 {
pub use super::PAR1::PA;
}
pub mod MAR6 {
pub use super::MAR1::MA;
}
pub mod CR7 {
pub use super::CR1::CIRC;
pub use super::CR1::DIR;
pub use super::CR1::EN;
pub use super::CR1::HTIE;
pub use super::CR1::MEM2MEM;
pub use super::CR1::MINC;
pub use super::CR1::MSIZE;
pub use super::CR1::PINC;
pub use super::CR1::PL;
pub use super::CR1::PSIZE;
pub use super::CR1::TCIE;
pub use super::CR1::TEIE;
}
pub mod NDTR7 {
pub use super::NDTR1::NDT;
}
pub mod PAR7 {
pub use super::PAR1::PA;
}
pub mod MAR7 {
pub use super::MAR1::MA;
}
#[repr(C)]
pub struct RegisterBlock {
pub ISR: RORegister<u32>,
pub IFCR: WORegister<u32>,
pub CR1: RWRegister<u32>,
pub NDTR1: RWRegister<u32>,
pub PAR1: RWRegister<u32>,
pub MAR1: RWRegister<u32>,
_reserved1: [u8; 4],
pub CR2: RWRegister<u32>,
pub NDTR2: RWRegister<u32>,
pub PAR2: RWRegister<u32>,
pub MAR2: RWRegister<u32>,
_reserved2: [u8; 4],
pub CR3: RWRegister<u32>,
pub NDTR3: RWRegister<u32>,
pub PAR3: RWRegister<u32>,
pub MAR3: RWRegister<u32>,
_reserved3: [u8; 4],
pub CR4: RWRegister<u32>,
pub NDTR4: RWRegister<u32>,
pub PAR4: RWRegister<u32>,
pub MAR4: RWRegister<u32>,
_reserved4: [u8; 4],
pub CR5: RWRegister<u32>,
pub NDTR5: RWRegister<u32>,
pub PAR5: RWRegister<u32>,
pub MAR5: RWRegister<u32>,
_reserved5: [u8; 4],
pub CR6: RWRegister<u32>,
pub NDTR6: RWRegister<u32>,
pub PAR6: RWRegister<u32>,
pub MAR6: RWRegister<u32>,
_reserved6: [u8; 4],
pub CR7: RWRegister<u32>,
pub NDTR7: RWRegister<u32>,
pub PAR7: RWRegister<u32>,
pub MAR7: RWRegister<u32>,
}
pub struct ResetValues {
pub ISR: u32,
pub IFCR: u32,
pub CR1: u32,
pub NDTR1: u32,
pub PAR1: u32,
pub MAR1: u32,
pub CR2: u32,
pub NDTR2: u32,
pub PAR2: u32,
pub MAR2: u32,
pub CR3: u32,
pub NDTR3: u32,
pub PAR3: u32,
pub MAR3: u32,
pub CR4: u32,
pub NDTR4: u32,
pub PAR4: u32,
pub MAR4: u32,
pub CR5: u32,
pub NDTR5: u32,
pub PAR5: u32,
pub MAR5: u32,
pub CR6: u32,
pub NDTR6: u32,
pub PAR6: u32,
pub MAR6: u32,
pub CR7: u32,
pub NDTR7: u32,
pub PAR7: u32,
pub MAR7: 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 DMA1 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40020000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
ISR: 0x00000000,
IFCR: 0x00000000,
CR1: 0x00000000,
NDTR1: 0x00000000,
PAR1: 0x00000000,
MAR1: 0x00000000,
CR2: 0x00000000,
NDTR2: 0x00000000,
PAR2: 0x00000000,
MAR2: 0x00000000,
CR3: 0x00000000,
NDTR3: 0x00000000,
PAR3: 0x00000000,
MAR3: 0x00000000,
CR4: 0x00000000,
NDTR4: 0x00000000,
PAR4: 0x00000000,
MAR4: 0x00000000,
CR5: 0x00000000,
NDTR5: 0x00000000,
PAR5: 0x00000000,
MAR5: 0x00000000,
CR6: 0x00000000,
NDTR6: 0x00000000,
PAR6: 0x00000000,
MAR6: 0x00000000,
CR7: 0x00000000,
NDTR7: 0x00000000,
PAR7: 0x00000000,
MAR7: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut DMA1_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if DMA1_TAKEN {
None
} else {
DMA1_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if DMA1_TAKEN && inst.addr == INSTANCE.addr {
DMA1_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
DMA1_TAKEN = true;
INSTANCE
}
}
pub const DMA1: *const RegisterBlock = 0x40020000 as *const _;
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,
CR1: 0x00000000,
NDTR1: 0x00000000,
PAR1: 0x00000000,
MAR1: 0x00000000,
CR2: 0x00000000,
NDTR2: 0x00000000,
PAR2: 0x00000000,
MAR2: 0x00000000,
CR3: 0x00000000,
NDTR3: 0x00000000,
PAR3: 0x00000000,
MAR3: 0x00000000,
CR4: 0x00000000,
NDTR4: 0x00000000,
PAR4: 0x00000000,
MAR4: 0x00000000,
CR5: 0x00000000,
NDTR5: 0x00000000,
PAR5: 0x00000000,
MAR5: 0x00000000,
CR6: 0x00000000,
NDTR6: 0x00000000,
PAR6: 0x00000000,
MAR6: 0x00000000,
CR7: 0x00000000,
NDTR7: 0x00000000,
PAR7: 0x00000000,
MAR7: 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 _;