diff options
| author | Dario Nieuwenhuis <[email protected]> | 2022-07-29 21:58:35 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2022-07-29 23:40:36 +0200 |
| commit | a0f1b0ee01d461607660d2d56b5b1bdc57e0d3fb (patch) | |
| tree | e60fc8f8db8ec07e55d655c1a830b07f4db0b7d2 /embassy-nrf/src | |
| parent | 8745d646f0976791b7098456aa61adb983fb1c18 (diff) | |
Split embassy crate into embassy-executor, embassy-util.
Diffstat (limited to 'embassy-nrf/src')
| -rw-r--r-- | embassy-nrf/src/buffered_uarte.rs | 14 | ||||
| -rw-r--r-- | embassy-nrf/src/gpiote.rs | 2 | ||||
| -rw-r--r-- | embassy-nrf/src/qdec.rs | 2 | ||||
| -rw-r--r-- | embassy-nrf/src/qspi.rs | 2 | ||||
| -rw-r--r-- | embassy-nrf/src/rng.rs | 2 | ||||
| -rw-r--r-- | embassy-nrf/src/saadc.rs | 2 | ||||
| -rw-r--r-- | embassy-nrf/src/spim.rs | 2 | ||||
| -rw-r--r-- | embassy-nrf/src/temp.rs | 2 | ||||
| -rw-r--r-- | embassy-nrf/src/time_driver.rs | 8 | ||||
| -rw-r--r-- | embassy-nrf/src/timer.rs | 6 | ||||
| -rw-r--r-- | embassy-nrf/src/twim.rs | 6 | ||||
| -rw-r--r-- | embassy-nrf/src/uarte.rs | 2 | ||||
| -rw-r--r-- | embassy-nrf/src/usb.rs | 2 |
13 files changed, 31 insertions, 21 deletions
diff --git a/embassy-nrf/src/buffered_uarte.rs b/embassy-nrf/src/buffered_uarte.rs index 89c1ba908..21ff1d73b 100644 --- a/embassy-nrf/src/buffered_uarte.rs +++ b/embassy-nrf/src/buffered_uarte.rs | |||
| @@ -18,10 +18,10 @@ use core::future::Future; | |||
| 18 | use core::sync::atomic::{compiler_fence, Ordering}; | 18 | use core::sync::atomic::{compiler_fence, Ordering}; |
| 19 | use core::task::Poll; | 19 | use core::task::Poll; |
| 20 | 20 | ||
| 21 | use embassy::waitqueue::WakerRegistration; | ||
| 22 | use embassy_cortex_m::peripheral::{PeripheralMutex, PeripheralState, StateStorage}; | 21 | use embassy_cortex_m::peripheral::{PeripheralMutex, PeripheralState, StateStorage}; |
| 23 | use embassy_hal_common::ring_buffer::RingBuffer; | 22 | use embassy_hal_common::ring_buffer::RingBuffer; |
| 24 | use embassy_hal_common::{into_ref, low_power_wait_until, PeripheralRef}; | 23 | use embassy_hal_common::{into_ref, PeripheralRef}; |
| 24 | use embassy_util::waitqueue::WakerRegistration; | ||
| 25 | use futures::future::poll_fn; | 25 | use futures::future::poll_fn; |
| 26 | // Re-export SVD variants to allow user to directly set values | 26 | // Re-export SVD variants to allow user to directly set values |
| 27 | pub use pac::uarte0::{baudrate::BAUDRATE_A as Baudrate, config::PARITY_A as Parity}; | 27 | pub use pac::uarte0::{baudrate::BAUDRATE_A as Baudrate, config::PARITY_A as Parity}; |
| @@ -450,3 +450,13 @@ impl<'a, U: UarteInstance, T: TimerInstance> PeripheralState for StateInner<'a, | |||
| 450 | trace!("irq: end"); | 450 | trace!("irq: end"); |
| 451 | } | 451 | } |
| 452 | } | 452 | } |
| 453 | |||
| 454 | /// Low power blocking wait loop using WFE/SEV. | ||
| 455 | fn low_power_wait_until(mut condition: impl FnMut() -> bool) { | ||
| 456 | while !condition() { | ||
| 457 | // WFE might "eat" an event that would have otherwise woken the executor. | ||
| 458 | cortex_m::asm::wfe(); | ||
| 459 | } | ||
| 460 | // Retrigger an event to be transparent to the executor. | ||
| 461 | cortex_m::asm::sev(); | ||
| 462 | } | ||
diff --git a/embassy-nrf/src/gpiote.rs b/embassy-nrf/src/gpiote.rs index cef80ae0a..cf49b0db0 100644 --- a/embassy-nrf/src/gpiote.rs +++ b/embassy-nrf/src/gpiote.rs | |||
| @@ -2,8 +2,8 @@ use core::convert::Infallible; | |||
| 2 | use core::future::Future; | 2 | use core::future::Future; |
| 3 | use core::task::{Context, Poll}; | 3 | use core::task::{Context, Poll}; |
| 4 | 4 | ||
| 5 | use embassy::waitqueue::AtomicWaker; | ||
| 6 | use embassy_hal_common::{impl_peripheral, Peripheral, PeripheralRef}; | 5 | use embassy_hal_common::{impl_peripheral, Peripheral, PeripheralRef}; |
| 6 | use embassy_util::waitqueue::AtomicWaker; | ||
| 7 | use futures::future::poll_fn; | 7 | use futures::future::poll_fn; |
| 8 | 8 | ||
| 9 | use crate::gpio::sealed::Pin as _; | 9 | use crate::gpio::sealed::Pin as _; |
diff --git a/embassy-nrf/src/qdec.rs b/embassy-nrf/src/qdec.rs index f6daec252..83f2916b9 100644 --- a/embassy-nrf/src/qdec.rs +++ b/embassy-nrf/src/qdec.rs | |||
| @@ -2,8 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | use core::task::Poll; | 3 | use core::task::Poll; |
| 4 | 4 | ||
| 5 | use embassy::waitqueue::AtomicWaker; | ||
| 6 | use embassy_hal_common::{into_ref, PeripheralRef}; | 5 | use embassy_hal_common::{into_ref, PeripheralRef}; |
| 6 | use embassy_util::waitqueue::AtomicWaker; | ||
| 7 | use futures::future::poll_fn; | 7 | use futures::future::poll_fn; |
| 8 | 8 | ||
| 9 | use crate::gpio::sealed::Pin as _; | 9 | use crate::gpio::sealed::Pin as _; |
diff --git a/embassy-nrf/src/qspi.rs b/embassy-nrf/src/qspi.rs index 67634b5b7..cedf88de5 100644 --- a/embassy-nrf/src/qspi.rs +++ b/embassy-nrf/src/qspi.rs | |||
| @@ -512,7 +512,7 @@ cfg_if::cfg_if! { | |||
| 512 | } | 512 | } |
| 513 | 513 | ||
| 514 | pub(crate) mod sealed { | 514 | pub(crate) mod sealed { |
| 515 | use embassy::waitqueue::AtomicWaker; | 515 | use embassy_util::waitqueue::AtomicWaker; |
| 516 | 516 | ||
| 517 | use super::*; | 517 | use super::*; |
| 518 | 518 | ||
diff --git a/embassy-nrf/src/rng.rs b/embassy-nrf/src/rng.rs index 9bebd6fa3..7aad561b6 100644 --- a/embassy-nrf/src/rng.rs +++ b/embassy-nrf/src/rng.rs | |||
| @@ -2,9 +2,9 @@ use core::ptr; | |||
| 2 | use core::sync::atomic::{AtomicPtr, Ordering}; | 2 | use core::sync::atomic::{AtomicPtr, Ordering}; |
| 3 | use core::task::Poll; | 3 | use core::task::Poll; |
| 4 | 4 | ||
| 5 | use embassy::waitqueue::AtomicWaker; | ||
| 6 | use embassy_hal_common::drop::OnDrop; | 5 | use embassy_hal_common::drop::OnDrop; |
| 7 | use embassy_hal_common::{into_ref, PeripheralRef}; | 6 | use embassy_hal_common::{into_ref, PeripheralRef}; |
| 7 | use embassy_util::waitqueue::AtomicWaker; | ||
| 8 | use futures::future::poll_fn; | 8 | use futures::future::poll_fn; |
| 9 | 9 | ||
| 10 | use crate::interrupt::InterruptExt; | 10 | use crate::interrupt::InterruptExt; |
diff --git a/embassy-nrf/src/saadc.rs b/embassy-nrf/src/saadc.rs index 6ddc70e52..f2ef46d8d 100644 --- a/embassy-nrf/src/saadc.rs +++ b/embassy-nrf/src/saadc.rs | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | use core::sync::atomic::{compiler_fence, Ordering}; | 3 | use core::sync::atomic::{compiler_fence, Ordering}; |
| 4 | use core::task::Poll; | 4 | use core::task::Poll; |
| 5 | 5 | ||
| 6 | use embassy::waitqueue::AtomicWaker; | ||
| 7 | use embassy_hal_common::{impl_peripheral, into_ref, PeripheralRef}; | 6 | use embassy_hal_common::{impl_peripheral, into_ref, PeripheralRef}; |
| 7 | use embassy_util::waitqueue::AtomicWaker; | ||
| 8 | use futures::future::poll_fn; | 8 | use futures::future::poll_fn; |
| 9 | use pac::{saadc, SAADC}; | 9 | use pac::{saadc, SAADC}; |
| 10 | use saadc::ch::config::{GAIN_A, REFSEL_A, RESP_A, TACQ_A}; | 10 | use saadc::ch::config::{GAIN_A, REFSEL_A, RESP_A, TACQ_A}; |
diff --git a/embassy-nrf/src/spim.rs b/embassy-nrf/src/spim.rs index a512b4813..57c0c14c7 100644 --- a/embassy-nrf/src/spim.rs +++ b/embassy-nrf/src/spim.rs | |||
| @@ -363,7 +363,7 @@ impl<'d, T: Instance> Drop for Spim<'d, T> { | |||
| 363 | } | 363 | } |
| 364 | 364 | ||
| 365 | pub(crate) mod sealed { | 365 | pub(crate) mod sealed { |
| 366 | use embassy::waitqueue::AtomicWaker; | 366 | use embassy_util::waitqueue::AtomicWaker; |
| 367 | 367 | ||
| 368 | use super::*; | 368 | use super::*; |
| 369 | 369 | ||
diff --git a/embassy-nrf/src/temp.rs b/embassy-nrf/src/temp.rs index a3b25ce05..1491e4268 100644 --- a/embassy-nrf/src/temp.rs +++ b/embassy-nrf/src/temp.rs | |||
| @@ -2,9 +2,9 @@ | |||
| 2 | 2 | ||
| 3 | use core::task::Poll; | 3 | use core::task::Poll; |
| 4 | 4 | ||
| 5 | use embassy::waitqueue::AtomicWaker; | ||
| 6 | use embassy_hal_common::drop::OnDrop; | 5 | use embassy_hal_common::drop::OnDrop; |
| 7 | use embassy_hal_common::{into_ref, PeripheralRef}; | 6 | use embassy_hal_common::{into_ref, PeripheralRef}; |
| 7 | use embassy_util::waitqueue::AtomicWaker; | ||
| 8 | use fixed::types::I30F2; | 8 | use fixed::types::I30F2; |
| 9 | use futures::future::poll_fn; | 9 | use futures::future::poll_fn; |
| 10 | 10 | ||
diff --git a/embassy-nrf/src/time_driver.rs b/embassy-nrf/src/time_driver.rs index f7b3345b2..05fa0aea8 100644 --- a/embassy-nrf/src/time_driver.rs +++ b/embassy-nrf/src/time_driver.rs | |||
| @@ -3,9 +3,9 @@ use core::sync::atomic::{compiler_fence, AtomicU32, AtomicU8, Ordering}; | |||
| 3 | use core::{mem, ptr}; | 3 | use core::{mem, ptr}; |
| 4 | 4 | ||
| 5 | use critical_section::CriticalSection; | 5 | use critical_section::CriticalSection; |
| 6 | use embassy::blocking_mutex::raw::CriticalSectionRawMutex; | 6 | use embassy_executor::time::driver::{AlarmHandle, Driver}; |
| 7 | use embassy::blocking_mutex::CriticalSectionMutex as Mutex; | 7 | use embassy_util::blocking_mutex::raw::CriticalSectionRawMutex; |
| 8 | use embassy::time::driver::{AlarmHandle, Driver}; | 8 | use embassy_util::blocking_mutex::CriticalSectionMutex as Mutex; |
| 9 | 9 | ||
| 10 | use crate::interrupt::{Interrupt, InterruptExt}; | 10 | use crate::interrupt::{Interrupt, InterruptExt}; |
| 11 | use crate::{interrupt, pac}; | 11 | use crate::{interrupt, pac}; |
| @@ -119,7 +119,7 @@ struct RtcDriver { | |||
| 119 | } | 119 | } |
| 120 | 120 | ||
| 121 | const ALARM_STATE_NEW: AlarmState = AlarmState::new(); | 121 | const ALARM_STATE_NEW: AlarmState = AlarmState::new(); |
| 122 | embassy::time_driver_impl!(static DRIVER: RtcDriver = RtcDriver { | 122 | embassy_executor::time_driver_impl!(static DRIVER: RtcDriver = RtcDriver { |
| 123 | period: AtomicU32::new(0), | 123 | period: AtomicU32::new(0), |
| 124 | alarm_count: AtomicU8::new(0), | 124 | alarm_count: AtomicU8::new(0), |
| 125 | alarms: Mutex::const_new(CriticalSectionRawMutex::new(), [ALARM_STATE_NEW; ALARM_COUNT]), | 125 | alarms: Mutex::const_new(CriticalSectionRawMutex::new(), [ALARM_STATE_NEW; ALARM_COUNT]), |
diff --git a/embassy-nrf/src/timer.rs b/embassy-nrf/src/timer.rs index 8deecdc03..b3b613db2 100644 --- a/embassy-nrf/src/timer.rs +++ b/embassy-nrf/src/timer.rs | |||
| @@ -3,9 +3,9 @@ | |||
| 3 | use core::marker::PhantomData; | 3 | use core::marker::PhantomData; |
| 4 | use core::task::Poll; | 4 | use core::task::Poll; |
| 5 | 5 | ||
| 6 | use embassy::waitqueue::AtomicWaker; | ||
| 7 | use embassy_hal_common::drop::OnDrop; | 6 | use embassy_hal_common::drop::OnDrop; |
| 8 | use embassy_hal_common::{into_ref, PeripheralRef}; | 7 | use embassy_hal_common::{into_ref, PeripheralRef}; |
| 8 | use embassy_util::waitqueue::AtomicWaker; | ||
| 9 | use futures::future::poll_fn; | 9 | use futures::future::poll_fn; |
| 10 | 10 | ||
| 11 | use crate::interrupt::{Interrupt, InterruptExt}; | 11 | use crate::interrupt::{Interrupt, InterruptExt}; |
| @@ -40,8 +40,8 @@ macro_rules! impl_timer { | |||
| 40 | fn regs() -> &'static pac::timer0::RegisterBlock { | 40 | fn regs() -> &'static pac::timer0::RegisterBlock { |
| 41 | unsafe { &*(pac::$pac_type::ptr() as *const pac::timer0::RegisterBlock) } | 41 | unsafe { &*(pac::$pac_type::ptr() as *const pac::timer0::RegisterBlock) } |
| 42 | } | 42 | } |
| 43 | fn waker(n: usize) -> &'static ::embassy::waitqueue::AtomicWaker { | 43 | fn waker(n: usize) -> &'static ::embassy_util::waitqueue::AtomicWaker { |
| 44 | use ::embassy::waitqueue::AtomicWaker; | 44 | use ::embassy_util::waitqueue::AtomicWaker; |
| 45 | const NEW_AW: AtomicWaker = AtomicWaker::new(); | 45 | const NEW_AW: AtomicWaker = AtomicWaker::new(); |
| 46 | static WAKERS: [AtomicWaker; $ccs] = [NEW_AW; $ccs]; | 46 | static WAKERS: [AtomicWaker; $ccs] = [NEW_AW; $ccs]; |
| 47 | &WAKERS[n] | 47 | &WAKERS[n] |
diff --git a/embassy-nrf/src/twim.rs b/embassy-nrf/src/twim.rs index 6d6eb84e7..494abe0cc 100644 --- a/embassy-nrf/src/twim.rs +++ b/embassy-nrf/src/twim.rs | |||
| @@ -11,11 +11,11 @@ use core::sync::atomic::compiler_fence; | |||
| 11 | use core::sync::atomic::Ordering::SeqCst; | 11 | use core::sync::atomic::Ordering::SeqCst; |
| 12 | use core::task::Poll; | 12 | use core::task::Poll; |
| 13 | 13 | ||
| 14 | #[cfg(feature = "time")] | ||
| 15 | use embassy::time::{Duration, Instant}; | ||
| 16 | use embassy::waitqueue::AtomicWaker; | ||
| 17 | use embassy_embedded_hal::SetConfig; | 14 | use embassy_embedded_hal::SetConfig; |
| 15 | #[cfg(feature = "time")] | ||
| 16 | use embassy_executor::time::{Duration, Instant}; | ||
| 18 | use embassy_hal_common::{into_ref, PeripheralRef}; | 17 | use embassy_hal_common::{into_ref, PeripheralRef}; |
| 18 | use embassy_util::waitqueue::AtomicWaker; | ||
| 19 | use futures::future::poll_fn; | 19 | use futures::future::poll_fn; |
| 20 | 20 | ||
| 21 | use crate::chip::{EASY_DMA_SIZE, FORCE_COPY_BUFFER_SIZE}; | 21 | use crate::chip::{EASY_DMA_SIZE, FORCE_COPY_BUFFER_SIZE}; |
diff --git a/embassy-nrf/src/uarte.rs b/embassy-nrf/src/uarte.rs index 792b8ecca..0d24cf65f 100644 --- a/embassy-nrf/src/uarte.rs +++ b/embassy-nrf/src/uarte.rs | |||
| @@ -932,7 +932,7 @@ impl<'d, U: Instance, T: TimerInstance> UarteRxWithIdle<'d, U, T> { | |||
| 932 | pub(crate) mod sealed { | 932 | pub(crate) mod sealed { |
| 933 | use core::sync::atomic::AtomicU8; | 933 | use core::sync::atomic::AtomicU8; |
| 934 | 934 | ||
| 935 | use embassy::waitqueue::AtomicWaker; | 935 | use embassy_util::waitqueue::AtomicWaker; |
| 936 | 936 | ||
| 937 | use super::*; | 937 | use super::*; |
| 938 | 938 | ||
diff --git a/embassy-nrf/src/usb.rs b/embassy-nrf/src/usb.rs index 378492859..ee99a9a6a 100644 --- a/embassy-nrf/src/usb.rs +++ b/embassy-nrf/src/usb.rs | |||
| @@ -6,11 +6,11 @@ use core::sync::atomic::{compiler_fence, AtomicBool, AtomicU32, Ordering}; | |||
| 6 | use core::task::Poll; | 6 | use core::task::Poll; |
| 7 | 7 | ||
| 8 | use cortex_m::peripheral::NVIC; | 8 | use cortex_m::peripheral::NVIC; |
| 9 | use embassy::waitqueue::AtomicWaker; | ||
| 10 | use embassy_hal_common::{into_ref, PeripheralRef}; | 9 | use embassy_hal_common::{into_ref, PeripheralRef}; |
| 11 | pub use embassy_usb; | 10 | pub use embassy_usb; |
| 12 | use embassy_usb::driver::{self, EndpointError, Event, Unsupported}; | 11 | use embassy_usb::driver::{self, EndpointError, Event, Unsupported}; |
| 13 | use embassy_usb::types::{EndpointAddress, EndpointInfo, EndpointType, UsbDirection}; | 12 | use embassy_usb::types::{EndpointAddress, EndpointInfo, EndpointType, UsbDirection}; |
| 13 | use embassy_util::waitqueue::AtomicWaker; | ||
| 14 | use futures::future::poll_fn; | 14 | use futures::future::poll_fn; |
| 15 | use futures::Future; | 15 | use futures::Future; |
| 16 | use pac::usbd::RegisterBlock; | 16 | use pac::usbd::RegisterBlock; |
