Select Git revision
rtic_bare1.rs
dma.rs 6.57 KiB
#![allow(dead_code)]
#![allow(unused_code)]
#![allow(missing_docs)]
use core::marker::{PhantomData, Unsize};
use core::ops;
use rcc::AHB1;
use stm32f4x::USART2;
use stm32f4x::{DMA1, dma2};
#[derive(Debug)]
pub enum Error {
Overrun,
#[doc(hidden)] _Extensible,
}
pub enum Event {
HalfTransfer,
TransferComplete,
}
#[derive(Clone, Copy, PartialEq)]
pub enum Half {
First,
Second,
}
pub struct CircBuffer<BUFFER, STREAM>
where
BUFFER: 'static,
{
buffer: &'static mut [BUFFER; 2],
channel: STREAM,
readable_half: Half,
}
impl<BUFFER, STREAM> CircBuffer<BUFFER, STREAM> {
pub(crate) fn new(buf: &'static mut [BUFFER; 2], chan: STREAM) -> Self {
CircBuffer {
buffer: buf,
channel: chan,
readable_half: Half::Second,
}
}
}
pub trait Static<B> {
fn borrow(&self) -> &B;
}
impl<B> Static<B> for &'static B {
fn borrow(&self) -> &B {
*self
}
}
impl<B> Static<B> for &'static mut B {
fn borrow(&self) -> &B {
*self
}
}
pub trait DmaExt {
type Streams;
fn split(self, ahb: &mut AHB1) -> Self::Streams;
}
//