extras: move peripherals from nrf to extras
This commit is contained in:
parent
ec7309962a
commit
c0876187dd
@ -3,6 +3,7 @@
|
|||||||
// This mod MUST go first, so that the others see its macros.
|
// This mod MUST go first, so that the others see its macros.
|
||||||
pub(crate) mod fmt;
|
pub(crate) mod fmt;
|
||||||
|
|
||||||
|
mod macros;
|
||||||
pub mod peripheral;
|
pub mod peripheral;
|
||||||
pub mod ring_buffer;
|
pub mod ring_buffer;
|
||||||
pub mod usb;
|
pub mod usb;
|
||||||
|
45
embassy-extras/src/macros.rs
Normal file
45
embassy-extras/src/macros.rs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#[macro_export]
|
||||||
|
macro_rules! peripherals {
|
||||||
|
($($(#[$cfg:meta])? $name:ident: $type:ident),*$(,)?) => {
|
||||||
|
$(
|
||||||
|
$(#[$cfg])?
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
pub struct $type { _private: () }
|
||||||
|
|
||||||
|
$(#[$cfg])?
|
||||||
|
impl embassy::util::PeripheralBorrow for $type {
|
||||||
|
type Target = $type;
|
||||||
|
unsafe fn unborrow(self) -> $type {
|
||||||
|
self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(#[$cfg])?
|
||||||
|
impl embassy::util::PeripheralBorrow for &mut $type {
|
||||||
|
type Target = $type;
|
||||||
|
unsafe fn unborrow(self) -> $type {
|
||||||
|
::core::ptr::read(self)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)*
|
||||||
|
|
||||||
|
pub struct Peripherals {
|
||||||
|
$(
|
||||||
|
$(#[$cfg])?
|
||||||
|
pub $name: $type,
|
||||||
|
)*
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Peripherals {
|
||||||
|
pub unsafe fn steal() -> Self {
|
||||||
|
Self {
|
||||||
|
$(
|
||||||
|
$(#[$cfg])?
|
||||||
|
$name: $type { _private: () },
|
||||||
|
)*
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
@ -1,51 +1,4 @@
|
|||||||
use embassy::util::PeripheralBorrow;
|
embassy_extras::peripherals! {
|
||||||
|
|
||||||
macro_rules! peripherals {
|
|
||||||
($($(#[$cfg:meta])? $name:ident: $type:ident),*$(,)?) => {
|
|
||||||
$(
|
|
||||||
$(#[$cfg])?
|
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
pub struct $type { _private: () }
|
|
||||||
|
|
||||||
$(#[$cfg])?
|
|
||||||
impl PeripheralBorrow for $type {
|
|
||||||
type Target = $type;
|
|
||||||
unsafe fn unborrow(self) -> $type {
|
|
||||||
self
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$(#[$cfg])?
|
|
||||||
impl PeripheralBorrow for &mut $type {
|
|
||||||
type Target = $type;
|
|
||||||
unsafe fn unborrow(self) -> $type {
|
|
||||||
::core::ptr::read(self)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)*
|
|
||||||
|
|
||||||
pub struct Peripherals {
|
|
||||||
$(
|
|
||||||
$(#[$cfg])?
|
|
||||||
pub $name: $type,
|
|
||||||
)*
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Peripherals {
|
|
||||||
pub unsafe fn steal() -> Self {
|
|
||||||
Self {
|
|
||||||
$(
|
|
||||||
$(#[$cfg])?
|
|
||||||
$name: $type { _private: () },
|
|
||||||
)*
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
peripherals! {
|
|
||||||
// RTC
|
// RTC
|
||||||
rtc0: RTC0,
|
rtc0: RTC0,
|
||||||
rtc1: RTC1,
|
rtc1: RTC1,
|
||||||
|
Loading…
Reference in New Issue
Block a user