Add embassy-cortex-m crate.
- Move Interrupt and InterruptExecutor from `embassy` to `embassy-cortex-m`. - Move Unborrow from `embassy` to `embassy-hal-common` (nothing in `embassy` requires it anymore) - Move PeripheralMutex from `embassy-hal-common` to `embassy-cortex-m`.
This commit is contained in:
@ -29,6 +29,7 @@ unstable-traits = ["embedded-hal-1"]
|
||||
|
||||
[dependencies]
|
||||
embassy = { version = "0.1.0", path = "../embassy", features = [ "time-tick-1mhz", "nightly"] }
|
||||
embassy-cortex-m = { version = "0.1.0", path = "../embassy-cortex-m", features = ["prio-bits-3"]}
|
||||
embassy-hal-common = {version = "0.1.0", path = "../embassy-hal-common" }
|
||||
embassy-macros = { version = "0.1.0", path = "../embassy-macros", features = ["rp"]}
|
||||
atomic-polyfill = "0.1.5"
|
||||
|
@ -6,7 +6,7 @@ use crate::pac::common::{Reg, RW};
|
||||
use crate::pac::SIO;
|
||||
use crate::peripherals;
|
||||
|
||||
use embassy::util::Unborrow;
|
||||
use crate::Unborrow;
|
||||
use embassy_hal_common::{unborrow, unsafe_impl_unborrow};
|
||||
|
||||
/// Represents a digital input or output level.
|
||||
|
@ -4,39 +4,33 @@
|
||||
//! nrf_softdevice::interrupt. Intended for switching between the two at compile-time.
|
||||
|
||||
// Re-exports
|
||||
pub use embassy::interrupt::{declare, take, Interrupt};
|
||||
pub use embassy_hal_common::interrupt::Priority3 as Priority;
|
||||
pub use embassy_cortex_m::interrupt::*;
|
||||
|
||||
mod irqs {
|
||||
use super::*;
|
||||
use crate::pac::Interrupt as InterruptEnum;
|
||||
|
||||
declare!(TIMER_IRQ_0);
|
||||
declare!(TIMER_IRQ_1);
|
||||
declare!(TIMER_IRQ_2);
|
||||
declare!(TIMER_IRQ_3);
|
||||
declare!(PWM_IRQ_WRAP);
|
||||
declare!(USBCTRL_IRQ);
|
||||
declare!(XIP_IRQ);
|
||||
declare!(PIO0_IRQ_0);
|
||||
declare!(PIO0_IRQ_1);
|
||||
declare!(PIO1_IRQ_0);
|
||||
declare!(PIO1_IRQ_1);
|
||||
declare!(DMA_IRQ_0);
|
||||
declare!(DMA_IRQ_1);
|
||||
declare!(IO_IRQ_BANK0);
|
||||
declare!(IO_IRQ_QSPI);
|
||||
declare!(SIO_IRQ_PROC0);
|
||||
declare!(SIO_IRQ_PROC1);
|
||||
declare!(CLOCKS_IRQ);
|
||||
declare!(SPI0_IRQ);
|
||||
declare!(SPI1_IRQ);
|
||||
declare!(UART0_IRQ);
|
||||
declare!(UART1_IRQ);
|
||||
declare!(ADC_IRQ_FIFO);
|
||||
declare!(I2C0_IRQ);
|
||||
declare!(I2C1_IRQ);
|
||||
declare!(RTC_IRQ);
|
||||
}
|
||||
|
||||
pub use irqs::*;
|
||||
use crate::pac::Interrupt as InterruptEnum;
|
||||
use embassy_macros::cortex_m_interrupt_declare as declare;
|
||||
declare!(TIMER_IRQ_0);
|
||||
declare!(TIMER_IRQ_1);
|
||||
declare!(TIMER_IRQ_2);
|
||||
declare!(TIMER_IRQ_3);
|
||||
declare!(PWM_IRQ_WRAP);
|
||||
declare!(USBCTRL_IRQ);
|
||||
declare!(XIP_IRQ);
|
||||
declare!(PIO0_IRQ_0);
|
||||
declare!(PIO0_IRQ_1);
|
||||
declare!(PIO1_IRQ_0);
|
||||
declare!(PIO1_IRQ_1);
|
||||
declare!(DMA_IRQ_0);
|
||||
declare!(DMA_IRQ_1);
|
||||
declare!(IO_IRQ_BANK0);
|
||||
declare!(IO_IRQ_QSPI);
|
||||
declare!(SIO_IRQ_PROC0);
|
||||
declare!(SIO_IRQ_PROC1);
|
||||
declare!(CLOCKS_IRQ);
|
||||
declare!(SPI0_IRQ);
|
||||
declare!(SPI1_IRQ);
|
||||
declare!(UART0_IRQ);
|
||||
declare!(UART1_IRQ);
|
||||
declare!(ADC_IRQ_FIFO);
|
||||
declare!(I2C0_IRQ);
|
||||
declare!(I2C1_IRQ);
|
||||
declare!(RTC_IRQ);
|
||||
|
@ -2,22 +2,12 @@
|
||||
#![feature(generic_associated_types)]
|
||||
#![feature(type_alias_impl_trait)]
|
||||
|
||||
#[cfg(feature = "unstable-pac")]
|
||||
pub use rp2040_pac2 as pac;
|
||||
#[cfg(not(feature = "unstable-pac"))]
|
||||
pub(crate) use rp2040_pac2 as pac;
|
||||
|
||||
pub use embassy::util::Unborrow;
|
||||
pub use embassy_hal_common::unborrow;
|
||||
|
||||
// This mod MUST go first, so that the others see its macros.
|
||||
pub(crate) mod fmt;
|
||||
|
||||
pub mod interrupt;
|
||||
pub use embassy_macros::interrupt;
|
||||
|
||||
pub mod dma;
|
||||
pub mod gpio;
|
||||
pub mod interrupt;
|
||||
pub mod spi;
|
||||
pub mod timer;
|
||||
pub mod uart;
|
||||
@ -25,6 +15,17 @@ pub mod uart;
|
||||
mod clocks;
|
||||
mod reset;
|
||||
|
||||
// Reexports
|
||||
|
||||
#[cfg(feature = "unstable-pac")]
|
||||
pub use rp2040_pac2 as pac;
|
||||
#[cfg(not(feature = "unstable-pac"))]
|
||||
pub(crate) use rp2040_pac2 as pac;
|
||||
|
||||
pub use embassy_cortex_m::executor;
|
||||
pub use embassy_hal_common::{unborrow, Unborrow};
|
||||
pub use embassy_macros::cortex_m_interrupt as interrupt;
|
||||
|
||||
embassy_hal_common::peripherals! {
|
||||
PIN_0,
|
||||
PIN_1,
|
||||
|
@ -1,6 +1,6 @@
|
||||
use core::marker::PhantomData;
|
||||
|
||||
use embassy::util::Unborrow;
|
||||
use crate::Unborrow;
|
||||
use embassy_hal_common::unborrow;
|
||||
|
||||
use crate::gpio::sealed::Pin as _;
|
||||
|
@ -1,9 +1,9 @@
|
||||
use crate::interrupt::{Interrupt, InterruptExt};
|
||||
use atomic_polyfill::{AtomicU8, Ordering};
|
||||
use core::cell::Cell;
|
||||
use critical_section::CriticalSection;
|
||||
use embassy::blocking_mutex::raw::CriticalSectionRawMutex;
|
||||
use embassy::blocking_mutex::Mutex;
|
||||
use embassy::interrupt::{Interrupt, InterruptExt};
|
||||
use embassy::time::driver::{AlarmHandle, Driver};
|
||||
|
||||
use crate::{interrupt, pac};
|
||||
|
@ -1,6 +1,6 @@
|
||||
use core::marker::PhantomData;
|
||||
|
||||
use embassy::util::Unborrow;
|
||||
use crate::Unborrow;
|
||||
use embassy_hal_common::unborrow;
|
||||
use gpio::Pin;
|
||||
|
||||
|
Reference in New Issue
Block a user