diff --git a/embassy-nrf-examples/src/bin/buffered_uart.rs b/embassy-nrf-examples/src/bin/buffered_uart.rs index 84bc742f..a1b2b4dd 100644 --- a/embassy-nrf-examples/src/bin/buffered_uart.rs +++ b/embassy-nrf-examples/src/bin/buffered_uart.rs @@ -8,6 +8,7 @@ use example_common::*; use cortex_m_rt::entry; use defmt::panic; +use futures::pin_mut; use nrf52840_hal as hal; use nrf52840_hal::gpio; @@ -51,6 +52,7 @@ async fn run() { buffered_uarte::Parity::EXCLUDED, buffered_uarte::Baudrate::BAUD115200, ); + pin_mut!(u); info!("uarte initialized!"); diff --git a/embassy-nrf/src/util/peripheral.rs b/embassy-nrf/src/util/peripheral.rs index fee343d9..6062c9d3 100644 --- a/embassy-nrf/src/util/peripheral.rs +++ b/embassy-nrf/src/util/peripheral.rs @@ -1,6 +1,7 @@ +use core::cell::UnsafeCell; +use core::marker::{PhantomData, PhantomPinned}; use core::pin::Pin; use core::sync::atomic::{compiler_fence, Ordering}; -use core::{cell::UnsafeCell, marker::PhantomData}; use crate::fmt::*; use crate::interrupt::OwnedInterrupt; @@ -12,14 +13,16 @@ pub trait PeripheralState { pub struct PeripheralMutex { inner: Option<(UnsafeCell, S::Interrupt)>, - not_send: PhantomData<*mut ()>, + _not_send: PhantomData<*mut ()>, + _pinned: PhantomPinned, } impl PeripheralMutex { pub fn new(state: S, irq: S::Interrupt) -> Self { Self { inner: Some((UnsafeCell::new(state), irq)), - not_send: PhantomData, + _not_send: PhantomData, + _pinned: PhantomPinned, } }