Merge #963
963: Remove some uses of the `futures` crate r=Dirbaio a=Dirbaio - use `Future` from `core` - `poll_fn` is now stable in `core` since Rust 1.64 (out today) - Use `join` from `embassy-futures`. Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
This commit is contained in:
		
						commit
						dacbc9acd5
					
				| @ -1,10 +1,9 @@ | |||||||
|  | use core::future::poll_fn; | ||||||
| use core::marker::PhantomData; | use core::marker::PhantomData; | ||||||
| use core::mem; | use core::mem; | ||||||
| use core::ptr::NonNull; | use core::ptr::NonNull; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use futures_util::future::poll_fn; |  | ||||||
| 
 |  | ||||||
| use super::raw; | use super::raw; | ||||||
| 
 | 
 | ||||||
| /// Token to spawn a newly-created task in an executor.
 | /// Token to spawn a newly-created task in an executor.
 | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| //! A radio driver integration for the radio found on STM32WL family devices.
 | //! A radio driver integration for the radio found on STM32WL family devices.
 | ||||||
| use core::future::Future; | use core::future::{poll_fn, Future}; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::{into_ref, Peripheral, PeripheralRef}; | use embassy_hal_common::{into_ref, Peripheral, PeripheralRef}; | ||||||
| @ -11,7 +11,6 @@ use embassy_stm32::subghz::{ | |||||||
|     Status, SubGhz, TcxoMode, TcxoTrim, Timeout, TxParams, |     Status, SubGhz, TcxoMode, TcxoTrim, Timeout, TxParams, | ||||||
| }; | }; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::future::poll_fn; |  | ||||||
| use lorawan_device::async_device::radio::{Bandwidth, PhyRxTx, RfConfig, RxQuality, SpreadingFactor, TxConfig}; | use lorawan_device::async_device::radio::{Bandwidth, PhyRxTx, RfConfig, RxQuality, SpreadingFactor, TxConfig}; | ||||||
| use lorawan_device::async_device::Timings; | use lorawan_device::async_device::Timings; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,10 +1,9 @@ | |||||||
| use core::cell::UnsafeCell; | use core::cell::UnsafeCell; | ||||||
| use core::future::Future; | use core::future::{poll_fn, Future}; | ||||||
| use core::task::{Context, Poll}; | use core::task::{Context, Poll}; | ||||||
| 
 | 
 | ||||||
| use embassy_sync::waitqueue::WakerRegistration; | use embassy_sync::waitqueue::WakerRegistration; | ||||||
| use embassy_time::{Instant, Timer}; | use embassy_time::{Instant, Timer}; | ||||||
| use futures::future::poll_fn; |  | ||||||
| use futures::pin_mut; | use futures::pin_mut; | ||||||
| use heapless::Vec; | use heapless::Vec; | ||||||
| #[cfg(feature = "dhcpv4")] | #[cfg(feature = "dhcpv4")] | ||||||
|  | |||||||
| @ -1,8 +1,8 @@ | |||||||
| use core::cell::UnsafeCell; | use core::cell::UnsafeCell; | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::mem; | use core::mem; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use futures::future::poll_fn; |  | ||||||
| use smoltcp::iface::{Interface, SocketHandle}; | use smoltcp::iface::{Interface, SocketHandle}; | ||||||
| use smoltcp::socket::tcp; | use smoltcp::socket::tcp; | ||||||
| use smoltcp::time::Duration; | use smoltcp::time::Duration; | ||||||
| @ -103,7 +103,7 @@ impl<'a> TcpSocket<'a> { | |||||||
|             Err(tcp::ConnectError::Unaddressable) => return Err(ConnectError::NoRoute), |             Err(tcp::ConnectError::Unaddressable) => return Err(ConnectError::NoRoute), | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         futures::future::poll_fn(|cx| unsafe { |         poll_fn(|cx| unsafe { | ||||||
|             self.io.with_mut(|s, _| match s.state() { |             self.io.with_mut(|s, _| match s.state() { | ||||||
|                 tcp::State::Closed | tcp::State::TimeWait => Poll::Ready(Err(ConnectError::ConnectionReset)), |                 tcp::State::Closed | tcp::State::TimeWait => Poll::Ready(Err(ConnectError::ConnectionReset)), | ||||||
|                 tcp::State::Listen => unreachable!(), |                 tcp::State::Listen => unreachable!(), | ||||||
| @ -128,7 +128,7 @@ impl<'a> TcpSocket<'a> { | |||||||
|             Err(tcp::ListenError::Unaddressable) => return Err(AcceptError::InvalidPort), |             Err(tcp::ListenError::Unaddressable) => return Err(AcceptError::InvalidPort), | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         futures::future::poll_fn(|cx| unsafe { |         poll_fn(|cx| unsafe { | ||||||
|             self.io.with_mut(|s, _| match s.state() { |             self.io.with_mut(|s, _| match s.state() { | ||||||
|                 tcp::State::Listen | tcp::State::SynSent | tcp::State::SynReceived => { |                 tcp::State::Listen | tcp::State::SynSent | tcp::State::SynReceived => { | ||||||
|                     s.register_send_waker(cx.waker()); |                     s.register_send_waker(cx.waker()); | ||||||
|  | |||||||
| @ -1,8 +1,8 @@ | |||||||
| use core::cell::UnsafeCell; | use core::cell::UnsafeCell; | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::mem; | use core::mem; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use futures::future::poll_fn; |  | ||||||
| use smoltcp::iface::{Interface, SocketHandle}; | use smoltcp::iface::{Interface, SocketHandle}; | ||||||
| use smoltcp::socket::udp::{self, PacketMetadata}; | use smoltcp::socket::udp::{self, PacketMetadata}; | ||||||
| use smoltcp::wire::{IpEndpoint, IpListenEndpoint}; | use smoltcp::wire::{IpEndpoint, IpListenEndpoint}; | ||||||
|  | |||||||
| @ -15,7 +15,7 @@ | |||||||
| 
 | 
 | ||||||
| use core::cell::RefCell; | use core::cell::RefCell; | ||||||
| use core::cmp::min; | use core::cmp::min; | ||||||
| use core::future::Future; | use core::future::{poll_fn, Future}; | ||||||
| use core::sync::atomic::{compiler_fence, Ordering}; | use core::sync::atomic::{compiler_fence, Ordering}; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| @ -23,7 +23,6 @@ use embassy_cortex_m::peripheral::{PeripheralMutex, PeripheralState, StateStorag | |||||||
| use embassy_hal_common::ring_buffer::RingBuffer; | use embassy_hal_common::ring_buffer::RingBuffer; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::WakerRegistration; | use embassy_sync::waitqueue::WakerRegistration; | ||||||
| use futures::future::poll_fn; |  | ||||||
| // Re-export SVD variants to allow user to directly set values
 | // Re-export SVD variants to allow user to directly set values
 | ||||||
| pub use pac::uarte0::{baudrate::BAUDRATE_A as Baudrate, config::PARITY_A as Parity}; | pub use pac::uarte0::{baudrate::BAUDRATE_A as Baudrate, config::PARITY_A as Parity}; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,10 +1,9 @@ | |||||||
| use core::convert::Infallible; | use core::convert::Infallible; | ||||||
| use core::future::Future; | use core::future::{poll_fn, Future}; | ||||||
| use core::task::{Context, Poll}; | use core::task::{Context, Poll}; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::{impl_peripheral, Peripheral, PeripheralRef}; | use embassy_hal_common::{impl_peripheral, Peripheral, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::future::poll_fn; |  | ||||||
| 
 | 
 | ||||||
| use crate::gpio::sealed::Pin as _; | use crate::gpio::sealed::Pin as _; | ||||||
| use crate::gpio::{AnyPin, Flex, Input, Output, Pin as GpioPin}; | use crate::gpio::{AnyPin, Flex, Input, Output, Pin as GpioPin}; | ||||||
|  | |||||||
| @ -1,10 +1,10 @@ | |||||||
| //! Quadrature decoder interface
 | //! Quadrature decoder interface
 | ||||||
| 
 | 
 | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::future::poll_fn; |  | ||||||
| 
 | 
 | ||||||
| use crate::gpio::sealed::Pin as _; | use crate::gpio::sealed::Pin as _; | ||||||
| use crate::gpio::{AnyPin, Pin as GpioPin}; | use crate::gpio::{AnyPin, Pin as GpioPin}; | ||||||
|  | |||||||
| @ -1,11 +1,11 @@ | |||||||
| #![macro_use] | #![macro_use] | ||||||
| 
 | 
 | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::ptr; | use core::ptr; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::drop::DropBomb; | use embassy_hal_common::drop::DropBomb; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use futures::future::poll_fn; |  | ||||||
| 
 | 
 | ||||||
| use crate::gpio::{self, Pin as GpioPin}; | use crate::gpio::{self, Pin as GpioPin}; | ||||||
| use crate::interrupt::{Interrupt, InterruptExt}; | use crate::interrupt::{Interrupt, InterruptExt}; | ||||||
|  | |||||||
| @ -1,3 +1,4 @@ | |||||||
|  | use core::future::poll_fn; | ||||||
| use core::ptr; | use core::ptr; | ||||||
| use core::sync::atomic::{AtomicPtr, Ordering}; | use core::sync::atomic::{AtomicPtr, Ordering}; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| @ -5,7 +6,6 @@ use core::task::Poll; | |||||||
| use embassy_hal_common::drop::OnDrop; | use embassy_hal_common::drop::OnDrop; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::future::poll_fn; |  | ||||||
| 
 | 
 | ||||||
| use crate::interrupt::InterruptExt; | use crate::interrupt::InterruptExt; | ||||||
| use crate::peripherals::RNG; | use crate::peripherals::RNG; | ||||||
|  | |||||||
| @ -1,12 +1,12 @@ | |||||||
| #![macro_use] | #![macro_use] | ||||||
| 
 | 
 | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::sync::atomic::{compiler_fence, Ordering}; | use core::sync::atomic::{compiler_fence, Ordering}; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::drop::OnDrop; | use embassy_hal_common::drop::OnDrop; | ||||||
| use embassy_hal_common::{impl_peripheral, into_ref, PeripheralRef}; | use embassy_hal_common::{impl_peripheral, into_ref, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::future::poll_fn; |  | ||||||
| use pac::{saadc, SAADC}; | use pac::{saadc, SAADC}; | ||||||
| use saadc::ch::config::{GAIN_A, REFSEL_A, RESP_A, TACQ_A}; | use saadc::ch::config::{GAIN_A, REFSEL_A, RESP_A, TACQ_A}; | ||||||
| // We treat the positive and negative channels with the same enum values to keep our type tidy and given they are the same
 | // We treat the positive and negative channels with the same enum values to keep our type tidy and given they are the same
 | ||||||
|  | |||||||
| @ -1,12 +1,12 @@ | |||||||
| #![macro_use] | #![macro_use] | ||||||
| 
 | 
 | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::sync::atomic::{compiler_fence, Ordering}; | use core::sync::atomic::{compiler_fence, Ordering}; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_embedded_hal::SetConfig; | use embassy_embedded_hal::SetConfig; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| pub use embedded_hal_02::spi::{Mode, Phase, Polarity, MODE_0, MODE_1, MODE_2, MODE_3}; | pub use embedded_hal_02::spi::{Mode, Phase, Polarity, MODE_0, MODE_1, MODE_2, MODE_3}; | ||||||
| use futures::future::poll_fn; |  | ||||||
| pub use pac::spim0::frequency::FREQUENCY_A as Frequency; | pub use pac::spim0::frequency::FREQUENCY_A as Frequency; | ||||||
| 
 | 
 | ||||||
| use crate::chip::FORCE_COPY_BUFFER_SIZE; | use crate::chip::FORCE_COPY_BUFFER_SIZE; | ||||||
|  | |||||||
| @ -1,12 +1,12 @@ | |||||||
| //! Temperature sensor interface.
 | //! Temperature sensor interface.
 | ||||||
| 
 | 
 | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::drop::OnDrop; | use embassy_hal_common::drop::OnDrop; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use fixed::types::I30F2; | use fixed::types::I30F2; | ||||||
| use futures::future::poll_fn; |  | ||||||
| 
 | 
 | ||||||
| use crate::interrupt::InterruptExt; | use crate::interrupt::InterruptExt; | ||||||
| use crate::peripherals::TEMP; | use crate::peripherals::TEMP; | ||||||
|  | |||||||
| @ -1,12 +1,12 @@ | |||||||
| #![macro_use] | #![macro_use] | ||||||
| 
 | 
 | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::marker::PhantomData; | use core::marker::PhantomData; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::drop::OnDrop; | use embassy_hal_common::drop::OnDrop; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::future::poll_fn; |  | ||||||
| 
 | 
 | ||||||
| use crate::interrupt::{Interrupt, InterruptExt}; | use crate::interrupt::{Interrupt, InterruptExt}; | ||||||
| use crate::ppi::{Event, Task}; | use crate::ppi::{Event, Task}; | ||||||
|  | |||||||
| @ -6,7 +6,7 @@ | |||||||
| //!
 | //!
 | ||||||
| //! - nRF52832: Section 33
 | //! - nRF52832: Section 33
 | ||||||
| //! - nRF52840: Section 6.31
 | //! - nRF52840: Section 6.31
 | ||||||
| use core::future::Future; | use core::future::{poll_fn, Future}; | ||||||
| use core::sync::atomic::compiler_fence; | use core::sync::atomic::compiler_fence; | ||||||
| use core::sync::atomic::Ordering::SeqCst; | use core::sync::atomic::Ordering::SeqCst; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| @ -16,7 +16,6 @@ use embassy_hal_common::{into_ref, PeripheralRef}; | |||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| #[cfg(feature = "time")] | #[cfg(feature = "time")] | ||||||
| use embassy_time::{Duration, Instant}; | use embassy_time::{Duration, Instant}; | ||||||
| use futures::future::poll_fn; |  | ||||||
| 
 | 
 | ||||||
| use crate::chip::{EASY_DMA_SIZE, FORCE_COPY_BUFFER_SIZE}; | use crate::chip::{EASY_DMA_SIZE, FORCE_COPY_BUFFER_SIZE}; | ||||||
| use crate::gpio::Pin as GpioPin; | use crate::gpio::Pin as GpioPin; | ||||||
|  | |||||||
| @ -13,12 +13,12 @@ | |||||||
| //! memory may be used given that buffers are passed in directly to its read and write
 | //! memory may be used given that buffers are passed in directly to its read and write
 | ||||||
| //! methods.
 | //! methods.
 | ||||||
| 
 | 
 | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::sync::atomic::{compiler_fence, Ordering}; | use core::sync::atomic::{compiler_fence, Ordering}; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::drop::OnDrop; | use embassy_hal_common::drop::OnDrop; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use futures::future::poll_fn; |  | ||||||
| use pac::uarte0::RegisterBlock; | use pac::uarte0::RegisterBlock; | ||||||
| // Re-export SVD variants to allow user to directly set values.
 | // Re-export SVD variants to allow user to directly set values.
 | ||||||
| pub use pac::uarte0::{baudrate::BAUDRATE_A as Baudrate, config::PARITY_A as Parity}; | pub use pac::uarte0::{baudrate::BAUDRATE_A as Baudrate, config::PARITY_A as Parity}; | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| #![macro_use] | #![macro_use] | ||||||
| 
 | 
 | ||||||
|  | use core::future::{poll_fn, Future}; | ||||||
| use core::marker::PhantomData; | use core::marker::PhantomData; | ||||||
| use core::mem::MaybeUninit; | use core::mem::MaybeUninit; | ||||||
| use core::sync::atomic::{compiler_fence, AtomicBool, AtomicU32, Ordering}; | use core::sync::atomic::{compiler_fence, AtomicBool, AtomicU32, Ordering}; | ||||||
| @ -11,8 +12,6 @@ use embassy_sync::waitqueue::AtomicWaker; | |||||||
| pub use embassy_usb; | pub use embassy_usb; | ||||||
| use embassy_usb::driver::{self, EndpointError, Event, Unsupported}; | use embassy_usb::driver::{self, EndpointError, Event, Unsupported}; | ||||||
| use embassy_usb::types::{EndpointAddress, EndpointInfo, EndpointType, UsbDirection}; | use embassy_usb::types::{EndpointAddress, EndpointInfo, EndpointType, UsbDirection}; | ||||||
| use futures::future::poll_fn; |  | ||||||
| use futures::Future; |  | ||||||
| use pac::usbd::RegisterBlock; | use pac::usbd::RegisterBlock; | ||||||
| 
 | 
 | ||||||
| use crate::interrupt::{Interrupt, InterruptExt}; | use crate::interrupt::{Interrupt, InterruptExt}; | ||||||
|  | |||||||
| @ -33,6 +33,7 @@ unstable-traits = ["embedded-hal-1"] | |||||||
| embassy-sync = { version = "0.1.0", path = "../embassy-sync" } | embassy-sync = { version = "0.1.0", path = "../embassy-sync" } | ||||||
| embassy-executor = { version = "0.1.0", path = "../embassy-executor" } | embassy-executor = { version = "0.1.0", path = "../embassy-executor" } | ||||||
| embassy-time = { version = "0.1.0", path = "../embassy-time", features = [ "tick-hz-1_000_000" ] } | embassy-time = { version = "0.1.0", path = "../embassy-time", features = [ "tick-hz-1_000_000" ] } | ||||||
|  | embassy-futures = { version = "0.1.0", path = "../embassy-futures" } | ||||||
| embassy-cortex-m = { version = "0.1.0", path = "../embassy-cortex-m", features = ["prio-bits-2"]} | embassy-cortex-m = { version = "0.1.0", path = "../embassy-cortex-m", features = ["prio-bits-2"]} | ||||||
| embassy-hal-common = {version = "0.1.0", path = "../embassy-hal-common" } | embassy-hal-common = {version = "0.1.0", path = "../embassy-hal-common" } | ||||||
| embassy-embedded-hal = {version = "0.1.0", path = "../embassy-embedded-hal" } | embassy-embedded-hal = {version = "0.1.0", path = "../embassy-embedded-hal" } | ||||||
|  | |||||||
| @ -1,3 +1,4 @@ | |||||||
|  | use core::future::Future; | ||||||
| use core::pin::Pin; | use core::pin::Pin; | ||||||
| use core::sync::atomic::{compiler_fence, Ordering}; | use core::sync::atomic::{compiler_fence, Ordering}; | ||||||
| use core::task::{Context, Poll}; | use core::task::{Context, Poll}; | ||||||
| @ -5,7 +6,6 @@ use core::task::{Context, Poll}; | |||||||
| use embassy_cortex_m::interrupt::{Interrupt, InterruptExt}; | use embassy_cortex_m::interrupt::{Interrupt, InterruptExt}; | ||||||
| use embassy_hal_common::{impl_peripheral, into_ref, Peripheral, PeripheralRef}; | use embassy_hal_common::{impl_peripheral, into_ref, Peripheral, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::Future; |  | ||||||
| use pac::dma::vals::DataSize; | use pac::dma::vals::DataSize; | ||||||
| 
 | 
 | ||||||
| use crate::pac::dma::vals; | use crate::pac::dma::vals; | ||||||
|  | |||||||
| @ -1,9 +1,9 @@ | |||||||
| use core::marker::PhantomData; | use core::marker::PhantomData; | ||||||
| 
 | 
 | ||||||
| use embassy_embedded_hal::SetConfig; | use embassy_embedded_hal::SetConfig; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| pub use embedded_hal_02::spi::{Phase, Polarity}; | pub use embedded_hal_02::spi::{Phase, Polarity}; | ||||||
| use futures::future::join; |  | ||||||
| 
 | 
 | ||||||
| use crate::dma::{AnyChannel, Channel}; | use crate::dma::{AnyChannel, Channel}; | ||||||
| use crate::gpio::sealed::Pin as _; | use crate::gpio::sealed::Pin as _; | ||||||
|  | |||||||
| @ -1,3 +1,4 @@ | |||||||
|  | use core::future::{poll_fn, Future}; | ||||||
| use core::marker::PhantomData; | use core::marker::PhantomData; | ||||||
| use core::slice; | use core::slice; | ||||||
| use core::sync::atomic::Ordering; | use core::sync::atomic::Ordering; | ||||||
| @ -8,8 +9,6 @@ use embassy_hal_common::into_ref; | |||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use embassy_usb::driver::{self, EndpointAllocError, EndpointError, Event, Unsupported}; | use embassy_usb::driver::{self, EndpointAllocError, EndpointError, Event, Unsupported}; | ||||||
| use embassy_usb::types::{EndpointAddress, EndpointInfo, EndpointType, UsbDirection}; | use embassy_usb::types::{EndpointAddress, EndpointInfo, EndpointType, UsbDirection}; | ||||||
| use futures::future::poll_fn; |  | ||||||
| use futures::Future; |  | ||||||
| 
 | 
 | ||||||
| use crate::interrupt::{Interrupt, InterruptExt}; | use crate::interrupt::{Interrupt, InterruptExt}; | ||||||
| use crate::{pac, peripherals, Peripheral, RegExt}; | use crate::{pac, peripherals, Peripheral, RegExt}; | ||||||
|  | |||||||
| @ -34,6 +34,7 @@ flavors = [ | |||||||
| embassy-sync = { version = "0.1.0", path = "../embassy-sync" } | embassy-sync = { version = "0.1.0", path = "../embassy-sync" } | ||||||
| embassy-executor = { version = "0.1.0", path = "../embassy-executor" } | embassy-executor = { version = "0.1.0", path = "../embassy-executor" } | ||||||
| embassy-time = { version = "0.1.0", path = "../embassy-time", optional = true } | embassy-time = { version = "0.1.0", path = "../embassy-time", optional = true } | ||||||
|  | embassy-futures = { version = "0.1.0", path = "../embassy-futures" } | ||||||
| embassy-cortex-m = { version = "0.1.0", path = "../embassy-cortex-m", features = ["prio-bits-4"]} | embassy-cortex-m = { version = "0.1.0", path = "../embassy-cortex-m", features = ["prio-bits-4"]} | ||||||
| embassy-hal-common = {version = "0.1.0", path = "../embassy-hal-common" } | embassy-hal-common = {version = "0.1.0", path = "../embassy-hal-common" } | ||||||
| embassy-embedded-hal = {version = "0.1.0", path = "../embassy-embedded-hal" } | embassy-embedded-hal = {version = "0.1.0", path = "../embassy-embedded-hal" } | ||||||
|  | |||||||
| @ -1,8 +1,8 @@ | |||||||
|  | use core::future::poll_fn; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::future::poll_fn; |  | ||||||
| 
 | 
 | ||||||
| use crate::gpio::sealed::AFType; | use crate::gpio::sealed::AFType; | ||||||
| use crate::gpio::Speed; | use crate::gpio::Speed; | ||||||
| @ -429,7 +429,7 @@ where | |||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
|         let (_, result) = futures::future::join(dma_read, result).await; |         let (_, result) = embassy_futures::join::join(dma_read, result).await; | ||||||
| 
 | 
 | ||||||
|         unsafe { Self::toggle(false) }; |         unsafe { Self::toggle(false) }; | ||||||
| 
 | 
 | ||||||
| @ -537,7 +537,7 @@ where | |||||||
| 
 | 
 | ||||||
|         unsafe { Self::toggle(true) }; |         unsafe { Self::toggle(true) }; | ||||||
| 
 | 
 | ||||||
|         let (_, result) = futures::future::join(dma_result, result).await; |         let (_, result) = embassy_futures::join::join(dma_result, result).await; | ||||||
| 
 | 
 | ||||||
|         unsafe { Self::toggle(false) }; |         unsafe { Self::toggle(false) }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,4 +1,5 @@ | |||||||
| use core::cmp; | use core::cmp; | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use atomic_polyfill::{AtomicUsize, Ordering}; | use atomic_polyfill::{AtomicUsize, Ordering}; | ||||||
| @ -6,7 +7,6 @@ use embassy_embedded_hal::SetConfig; | |||||||
| use embassy_hal_common::drop::OnDrop; | use embassy_hal_common::drop::OnDrop; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::future::poll_fn; |  | ||||||
| 
 | 
 | ||||||
| use crate::dma::NoDma; | use crate::dma::NoDma; | ||||||
| use crate::gpio::sealed::AFType; | use crate::gpio::sealed::AFType; | ||||||
|  | |||||||
| @ -1,10 +1,10 @@ | |||||||
| #![macro_use] | #![macro_use] | ||||||
| 
 | 
 | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::future::poll_fn; |  | ||||||
| use rand_core::{CryptoRng, RngCore}; | use rand_core::{CryptoRng, RngCore}; | ||||||
| 
 | 
 | ||||||
| use crate::{pac, peripherals, Peripheral}; | use crate::{pac, peripherals, Peripheral}; | ||||||
|  | |||||||
| @ -1,12 +1,12 @@ | |||||||
| #![macro_use] | #![macro_use] | ||||||
| 
 | 
 | ||||||
| use core::default::Default; | use core::default::Default; | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_hal_common::drop::OnDrop; | use embassy_hal_common::drop::OnDrop; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| use embassy_sync::waitqueue::AtomicWaker; | use embassy_sync::waitqueue::AtomicWaker; | ||||||
| use futures::future::poll_fn; |  | ||||||
| use sdio_host::{BusWidth, CardCapacity, CardStatus, CurrentState, SDStatus, CID, CSD, OCR, SCR}; | use sdio_host::{BusWidth, CardCapacity, CardStatus, CurrentState, SDStatus, CID, CSD, OCR, SCR}; | ||||||
| 
 | 
 | ||||||
| use crate::dma::NoDma; | use crate::dma::NoDma; | ||||||
|  | |||||||
| @ -3,9 +3,9 @@ | |||||||
| use core::ptr; | use core::ptr; | ||||||
| 
 | 
 | ||||||
| use embassy_embedded_hal::SetConfig; | use embassy_embedded_hal::SetConfig; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_hal_common::{into_ref, PeripheralRef}; | use embassy_hal_common::{into_ref, PeripheralRef}; | ||||||
| pub use embedded_hal_02::spi::{Mode, Phase, Polarity, MODE_0, MODE_1, MODE_2, MODE_3}; | pub use embedded_hal_02::spi::{Mode, Phase, Polarity, MODE_0, MODE_1, MODE_2, MODE_3}; | ||||||
| use futures::future::join; |  | ||||||
| 
 | 
 | ||||||
| use self::sealed::WordSize; | use self::sealed::WordSize; | ||||||
| use crate::dma::{slice_ptr_parts, NoDma, Transfer}; | use crate::dma::{slice_ptr_parts, NoDma, Transfer}; | ||||||
|  | |||||||
| @ -1,11 +1,10 @@ | |||||||
| use core::future::Future; | use core::future::{poll_fn, Future}; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use atomic_polyfill::{compiler_fence, Ordering}; | use atomic_polyfill::{compiler_fence, Ordering}; | ||||||
| use embassy_cortex_m::peripheral::{PeripheralMutex, PeripheralState, StateStorage}; | use embassy_cortex_m::peripheral::{PeripheralMutex, PeripheralState, StateStorage}; | ||||||
| use embassy_hal_common::ring_buffer::RingBuffer; | use embassy_hal_common::ring_buffer::RingBuffer; | ||||||
| use embassy_sync::waitqueue::WakerRegistration; | use embassy_sync::waitqueue::WakerRegistration; | ||||||
| use futures::future::poll_fn; |  | ||||||
| 
 | 
 | ||||||
| use super::*; | use super::*; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| #![macro_use] | #![macro_use] | ||||||
| 
 | 
 | ||||||
|  | use core::future::{poll_fn, Future}; | ||||||
| use core::marker::PhantomData; | use core::marker::PhantomData; | ||||||
| use core::sync::atomic::Ordering; | use core::sync::atomic::Ordering; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| @ -10,8 +11,6 @@ use embassy_sync::waitqueue::AtomicWaker; | |||||||
| use embassy_time::{block_for, Duration}; | use embassy_time::{block_for, Duration}; | ||||||
| use embassy_usb::driver::{self, EndpointAllocError, EndpointError, Event, Unsupported}; | use embassy_usb::driver::{self, EndpointAllocError, EndpointError, Event, Unsupported}; | ||||||
| use embassy_usb::types::{EndpointAddress, EndpointInfo, EndpointType, UsbDirection}; | use embassy_usb::types::{EndpointAddress, EndpointInfo, EndpointType, UsbDirection}; | ||||||
| use futures::future::poll_fn; |  | ||||||
| use futures::Future; |  | ||||||
| use pac::common::{Reg, RW}; | use pac::common::{Reg, RW}; | ||||||
| use pac::usb::vals::{EpType, Stat}; | use pac::usb::vals::{EpType, Stat}; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -2,11 +2,10 @@ | |||||||
| //!
 | //!
 | ||||||
| //! This module provides a mutex that can be used to synchronize data between asynchronous tasks.
 | //! This module provides a mutex that can be used to synchronize data between asynchronous tasks.
 | ||||||
| use core::cell::{RefCell, UnsafeCell}; | use core::cell::{RefCell, UnsafeCell}; | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::ops::{Deref, DerefMut}; | use core::ops::{Deref, DerefMut}; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use futures_util::future::poll_fn; |  | ||||||
| 
 |  | ||||||
| use crate::blocking_mutex::raw::RawMutex; | use crate::blocking_mutex::raw::RawMutex; | ||||||
| use crate::blocking_mutex::Mutex as BlockingMutex; | use crate::blocking_mutex::Mutex as BlockingMutex; | ||||||
| use crate::waitqueue::WakerRegistration; | use crate::waitqueue::WakerRegistration; | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| //! A synchronization primitive for passing the latest value to a task.
 | //! A synchronization primitive for passing the latest value to a task.
 | ||||||
| use core::cell::UnsafeCell; | use core::cell::UnsafeCell; | ||||||
| use core::future::Future; | use core::future::{poll_fn, Future}; | ||||||
| use core::mem; | use core::mem; | ||||||
| use core::task::{Context, Poll, Waker}; | use core::task::{Context, Poll, Waker}; | ||||||
| 
 | 
 | ||||||
| @ -94,7 +94,7 @@ impl<T: Send> Signal<T> { | |||||||
| 
 | 
 | ||||||
|     /// Future that completes when this Signal has been signaled.
 |     /// Future that completes when this Signal has been signaled.
 | ||||||
|     pub fn wait(&self) -> impl Future<Output = T> + '_ { |     pub fn wait(&self) -> impl Future<Output = T> + '_ { | ||||||
|         futures_util::future::poll_fn(move |cx| self.poll_wait(cx)) |         poll_fn(move |cx| self.poll_wait(cx)) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /// non-blocking method to check whether this signal has been signaled.
 |     /// non-blocking method to check whether this signal has been signaled.
 | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ | |||||||
| #![no_main] | #![no_main] | ||||||
| #![feature(type_alias_impl_trait)] | #![feature(type_alias_impl_trait)] | ||||||
| 
 | 
 | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use embassy_executor::Spawner; | use embassy_executor::Spawner; | ||||||
| @ -46,7 +47,7 @@ async fn run2() { | |||||||
| 
 | 
 | ||||||
| #[embassy_executor::task] | #[embassy_executor::task] | ||||||
| async fn run3() { | async fn run3() { | ||||||
|     futures::future::poll_fn(|cx| { |     poll_fn(|cx| { | ||||||
|         cx.waker().wake_by_ref(); |         cx.waker().wake_by_ref(); | ||||||
|         Poll::<()>::Pending |         Poll::<()>::Pending | ||||||
|     }) |     }) | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ | |||||||
| #![no_main] | #![no_main] | ||||||
| #![feature(type_alias_impl_trait)] | #![feature(type_alias_impl_trait)] | ||||||
| 
 | 
 | ||||||
|  | use core::future::poll_fn; | ||||||
| use core::task::Poll; | use core::task::Poll; | ||||||
| 
 | 
 | ||||||
| use defmt::{info, unwrap}; | use defmt::{info, unwrap}; | ||||||
| @ -26,7 +27,7 @@ async fn run2() { | |||||||
| 
 | 
 | ||||||
| #[embassy_executor::task] | #[embassy_executor::task] | ||||||
| async fn run3() { | async fn run3() { | ||||||
|     futures::future::poll_fn(|cx| { |     poll_fn(|cx| { | ||||||
|         cx.waker().wake_by_ref(); |         cx.waker().wake_by_ref(); | ||||||
|         Poll::<()>::Pending |         Poll::<()>::Pending | ||||||
|     }) |     }) | ||||||
|  | |||||||
| @ -7,6 +7,7 @@ use core::sync::atomic::{AtomicBool, Ordering}; | |||||||
| 
 | 
 | ||||||
| use defmt::*; | use defmt::*; | ||||||
| use embassy_executor::Spawner; | use embassy_executor::Spawner; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_futures::select::{select, Either}; | use embassy_futures::select::{select, Either}; | ||||||
| use embassy_nrf::gpio::{Input, Pin, Pull}; | use embassy_nrf::gpio::{Input, Pin, Pull}; | ||||||
| use embassy_nrf::usb::{Driver, PowerUsb}; | use embassy_nrf::usb::{Driver, PowerUsb}; | ||||||
| @ -15,7 +16,6 @@ use embassy_sync::signal::Signal; | |||||||
| use embassy_usb::control::OutResponse; | use embassy_usb::control::OutResponse; | ||||||
| use embassy_usb::{Builder, Config, DeviceStateHandler}; | use embassy_usb::{Builder, Config, DeviceStateHandler}; | ||||||
| use embassy_usb_hid::{HidReaderWriter, ReportId, RequestHandler, State}; | use embassy_usb_hid::{HidReaderWriter, ReportId, RequestHandler, State}; | ||||||
| use futures::future::join; |  | ||||||
| use usbd_hid::descriptor::{KeyboardReport, SerializedDescriptor}; | use usbd_hid::descriptor::{KeyboardReport, SerializedDescriptor}; | ||||||
| use {defmt_rtt as _, panic_probe as _}; | use {defmt_rtt as _, panic_probe as _}; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -6,13 +6,13 @@ use core::mem; | |||||||
| 
 | 
 | ||||||
| use defmt::*; | use defmt::*; | ||||||
| use embassy_executor::Spawner; | use embassy_executor::Spawner; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_nrf::usb::{Driver, PowerUsb}; | use embassy_nrf::usb::{Driver, PowerUsb}; | ||||||
| use embassy_nrf::{interrupt, pac}; | use embassy_nrf::{interrupt, pac}; | ||||||
| use embassy_time::{Duration, Timer}; | use embassy_time::{Duration, Timer}; | ||||||
| use embassy_usb::control::OutResponse; | use embassy_usb::control::OutResponse; | ||||||
| use embassy_usb::{Builder, Config}; | use embassy_usb::{Builder, Config}; | ||||||
| use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State}; | use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State}; | ||||||
| use futures::future::join; |  | ||||||
| use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; | use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; | ||||||
| use {defmt_rtt as _, panic_probe as _}; | use {defmt_rtt as _, panic_probe as _}; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -6,12 +6,12 @@ use core::mem; | |||||||
| 
 | 
 | ||||||
| use defmt::{info, panic}; | use defmt::{info, panic}; | ||||||
| use embassy_executor::Spawner; | use embassy_executor::Spawner; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_nrf::usb::{Driver, Instance, PowerUsb, UsbSupply}; | use embassy_nrf::usb::{Driver, Instance, PowerUsb, UsbSupply}; | ||||||
| use embassy_nrf::{interrupt, pac}; | use embassy_nrf::{interrupt, pac}; | ||||||
| use embassy_usb::driver::EndpointError; | use embassy_usb::driver::EndpointError; | ||||||
| use embassy_usb::{Builder, Config}; | use embassy_usb::{Builder, Config}; | ||||||
| use embassy_usb_serial::{CdcAcmClass, State}; | use embassy_usb_serial::{CdcAcmClass, State}; | ||||||
| use futures::future::join; |  | ||||||
| use {defmt_rtt as _, panic_probe as _}; | use {defmt_rtt as _, panic_probe as _}; | ||||||
| 
 | 
 | ||||||
| #[embassy_executor::main] | #[embassy_executor::main] | ||||||
|  | |||||||
| @ -13,6 +13,7 @@ embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defm | |||||||
| embassy-usb-serial = { version = "0.1.0", path = "../../embassy-usb-serial", features = ["defmt"] } | embassy-usb-serial = { version = "0.1.0", path = "../../embassy-usb-serial", features = ["defmt"] } | ||||||
| embassy-net = { version = "0.1.0", path = "../../embassy-net", features = ["defmt", "nightly", "tcp", "dhcpv4", "medium-ethernet", "pool-16"] } | embassy-net = { version = "0.1.0", path = "../../embassy-net", features = ["defmt", "nightly", "tcp", "dhcpv4", "medium-ethernet", "pool-16"] } | ||||||
| embassy-usb-ncm = { version = "0.1.0", path = "../../embassy-usb-ncm", features = ["defmt"] } | embassy-usb-ncm = { version = "0.1.0", path = "../../embassy-usb-ncm", features = ["defmt"] } | ||||||
|  | embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } | ||||||
| 
 | 
 | ||||||
| defmt = "0.3" | defmt = "0.3" | ||||||
| defmt-rtt = "0.3" | defmt-rtt = "0.3" | ||||||
|  | |||||||
| @ -4,12 +4,12 @@ | |||||||
| 
 | 
 | ||||||
| use defmt::{info, panic}; | use defmt::{info, panic}; | ||||||
| use embassy_executor::Spawner; | use embassy_executor::Spawner; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_rp::interrupt; | use embassy_rp::interrupt; | ||||||
| use embassy_rp::usb::{Driver, Instance}; | use embassy_rp::usb::{Driver, Instance}; | ||||||
| use embassy_usb::driver::EndpointError; | use embassy_usb::driver::EndpointError; | ||||||
| use embassy_usb::{Builder, Config}; | use embassy_usb::{Builder, Config}; | ||||||
| use embassy_usb_serial::{CdcAcmClass, State}; | use embassy_usb_serial::{CdcAcmClass, State}; | ||||||
| use futures::future::join; |  | ||||||
| use {defmt_rtt as _, panic_probe as _}; | use {defmt_rtt as _, panic_probe as _}; | ||||||
| 
 | 
 | ||||||
| #[embassy_executor::main] | #[embassy_executor::main] | ||||||
|  | |||||||
| @ -10,6 +10,7 @@ embassy-time = { version = "0.1.0", path = "../../embassy-time", features = ["de | |||||||
| embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["nightly", "defmt", "stm32f103c8", "unstable-pac", "memory-x", "time-driver-any"]  } | embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["nightly", "defmt", "stm32f103c8", "unstable-pac", "memory-x", "time-driver-any"]  } | ||||||
| embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } | embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } | ||||||
| embassy-usb-serial = { version = "0.1.0", path = "../../embassy-usb-serial", features = ["defmt"] } | embassy-usb-serial = { version = "0.1.0", path = "../../embassy-usb-serial", features = ["defmt"] } | ||||||
|  | embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } | ||||||
| 
 | 
 | ||||||
| defmt = "0.3" | defmt = "0.3" | ||||||
| defmt-rtt = "0.3" | defmt-rtt = "0.3" | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ | |||||||
| 
 | 
 | ||||||
| use defmt::{panic, *}; | use defmt::{panic, *}; | ||||||
| use embassy_executor::Spawner; | use embassy_executor::Spawner; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_stm32::gpio::{Level, Output, Speed}; | use embassy_stm32::gpio::{Level, Output, Speed}; | ||||||
| use embassy_stm32::time::Hertz; | use embassy_stm32::time::Hertz; | ||||||
| use embassy_stm32::usb::{Driver, Instance}; | use embassy_stm32::usb::{Driver, Instance}; | ||||||
| @ -12,7 +13,6 @@ use embassy_time::{Duration, Timer}; | |||||||
| use embassy_usb::driver::EndpointError; | use embassy_usb::driver::EndpointError; | ||||||
| use embassy_usb::Builder; | use embassy_usb::Builder; | ||||||
| use embassy_usb_serial::{CdcAcmClass, State}; | use embassy_usb_serial::{CdcAcmClass, State}; | ||||||
| use futures::future::join; |  | ||||||
| use {defmt_rtt as _, panic_probe as _}; | use {defmt_rtt as _, panic_probe as _}; | ||||||
| 
 | 
 | ||||||
| #[embassy_executor::main] | #[embassy_executor::main] | ||||||
|  | |||||||
| @ -11,6 +11,7 @@ embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [" | |||||||
| embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } | embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } | ||||||
| embassy-usb-serial = { version = "0.1.0", path = "../../embassy-usb-serial", features = ["defmt"] } | embassy-usb-serial = { version = "0.1.0", path = "../../embassy-usb-serial", features = ["defmt"] } | ||||||
| embassy-usb-hid = { version = "0.1.0", path = "../../embassy-usb-hid", features = ["defmt"] } | embassy-usb-hid = { version = "0.1.0", path = "../../embassy-usb-hid", features = ["defmt"] } | ||||||
|  | embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } | ||||||
| 
 | 
 | ||||||
| defmt = "0.3" | defmt = "0.3" | ||||||
| defmt-rtt = "0.3" | defmt-rtt = "0.3" | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ | |||||||
| 
 | 
 | ||||||
| use defmt::{panic, *}; | use defmt::{panic, *}; | ||||||
| use embassy_executor::Spawner; | use embassy_executor::Spawner; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_stm32::gpio::{Level, Output, Speed}; | use embassy_stm32::gpio::{Level, Output, Speed}; | ||||||
| use embassy_stm32::time::mhz; | use embassy_stm32::time::mhz; | ||||||
| use embassy_stm32::usb::{Driver, Instance}; | use embassy_stm32::usb::{Driver, Instance}; | ||||||
| @ -12,7 +13,6 @@ use embassy_time::{Duration, Timer}; | |||||||
| use embassy_usb::driver::EndpointError; | use embassy_usb::driver::EndpointError; | ||||||
| use embassy_usb::Builder; | use embassy_usb::Builder; | ||||||
| use embassy_usb_serial::{CdcAcmClass, State}; | use embassy_usb_serial::{CdcAcmClass, State}; | ||||||
| use futures::future::join; |  | ||||||
| use {defmt_rtt as _, panic_probe as _}; | use {defmt_rtt as _, panic_probe as _}; | ||||||
| 
 | 
 | ||||||
| #[embassy_executor::main] | #[embassy_executor::main] | ||||||
|  | |||||||
| @ -15,6 +15,7 @@ embassy-usb-serial = { version = "0.1.0", path = "../../embassy-usb-serial", fea | |||||||
| embassy-usb-hid = { version = "0.1.0", path = "../../embassy-usb-hid", features = ["defmt"] } | embassy-usb-hid = { version = "0.1.0", path = "../../embassy-usb-hid", features = ["defmt"] } | ||||||
| embassy-usb-ncm = { version = "0.1.0", path = "../../embassy-usb-ncm", features = ["defmt"] } | embassy-usb-ncm = { version = "0.1.0", path = "../../embassy-usb-ncm", features = ["defmt"] } | ||||||
| embassy-net = { version = "0.1.0", path = "../../embassy-net", features = ["defmt", "nightly", "tcp", "dhcpv4", "medium-ethernet", "pool-16"] } | embassy-net = { version = "0.1.0", path = "../../embassy-net", features = ["defmt", "nightly", "tcp", "dhcpv4", "medium-ethernet", "pool-16"] } | ||||||
|  | embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } | ||||||
| usbd-hid = "0.6.0" | usbd-hid = "0.6.0" | ||||||
| 
 | 
 | ||||||
| defmt = "0.3" | defmt = "0.3" | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ | |||||||
| 
 | 
 | ||||||
| use defmt::*; | use defmt::*; | ||||||
| use embassy_executor::Spawner; | use embassy_executor::Spawner; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_stm32::rcc::*; | use embassy_stm32::rcc::*; | ||||||
| use embassy_stm32::usb::Driver; | use embassy_stm32::usb::Driver; | ||||||
| use embassy_stm32::{interrupt, Config}; | use embassy_stm32::{interrupt, Config}; | ||||||
| @ -11,7 +12,6 @@ use embassy_time::{Duration, Timer}; | |||||||
| use embassy_usb::control::OutResponse; | use embassy_usb::control::OutResponse; | ||||||
| use embassy_usb::Builder; | use embassy_usb::Builder; | ||||||
| use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State}; | use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State}; | ||||||
| use futures::future::join; |  | ||||||
| use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; | use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; | ||||||
| use {defmt_rtt as _, panic_probe as _}; | use {defmt_rtt as _, panic_probe as _}; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -4,13 +4,13 @@ | |||||||
| 
 | 
 | ||||||
| use defmt::{panic, *}; | use defmt::{panic, *}; | ||||||
| use embassy_executor::Spawner; | use embassy_executor::Spawner; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_stm32::rcc::*; | use embassy_stm32::rcc::*; | ||||||
| use embassy_stm32::usb::{Driver, Instance}; | use embassy_stm32::usb::{Driver, Instance}; | ||||||
| use embassy_stm32::{interrupt, Config}; | use embassy_stm32::{interrupt, Config}; | ||||||
| use embassy_usb::driver::EndpointError; | use embassy_usb::driver::EndpointError; | ||||||
| use embassy_usb::Builder; | use embassy_usb::Builder; | ||||||
| use embassy_usb_serial::{CdcAcmClass, State}; | use embassy_usb_serial::{CdcAcmClass, State}; | ||||||
| use futures::future::join; |  | ||||||
| use {defmt_rtt as _, panic_probe as _}; | use {defmt_rtt as _, panic_probe as _}; | ||||||
| 
 | 
 | ||||||
| #[embassy_executor::main] | #[embassy_executor::main] | ||||||
|  | |||||||
| @ -8,6 +8,7 @@ embassy-sync = { version = "0.1.0", path = "../../embassy-sync", features = ["de | |||||||
| embassy-executor = { version = "0.1.0", path = "../../embassy-executor", features = ["defmt", "integrated-timers"] } | embassy-executor = { version = "0.1.0", path = "../../embassy-executor", features = ["defmt", "integrated-timers"] } | ||||||
| embassy-time = { version = "0.1.0", path = "../../embassy-time", features = ["defmt"] } | embassy-time = { version = "0.1.0", path = "../../embassy-time", features = ["defmt"] } | ||||||
| embassy-rp = { version = "0.1.0", path = "../../embassy-rp", features = ["nightly", "defmt", "unstable-pac", "unstable-traits"]  } | embassy-rp = { version = "0.1.0", path = "../../embassy-rp", features = ["nightly", "defmt", "unstable-pac", "unstable-traits"]  } | ||||||
|  | embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } | ||||||
| 
 | 
 | ||||||
| defmt = "0.3.0" | defmt = "0.3.0" | ||||||
| defmt-rtt = "0.3.0" | defmt-rtt = "0.3.0" | ||||||
|  | |||||||
| @ -4,9 +4,9 @@ | |||||||
| 
 | 
 | ||||||
| use defmt::{assert, *}; | use defmt::{assert, *}; | ||||||
| use embassy_executor::Spawner; | use embassy_executor::Spawner; | ||||||
|  | use embassy_futures::join::join; | ||||||
| use embassy_rp::gpio::{Input, Level, Output, Pull}; | use embassy_rp::gpio::{Input, Level, Output, Pull}; | ||||||
| use embassy_time::{Duration, Instant, Timer}; | use embassy_time::{Duration, Instant, Timer}; | ||||||
| use futures::future::join; |  | ||||||
| use {defmt_rtt as _, panic_probe as _}; | use {defmt_rtt as _, panic_probe as _}; | ||||||
| 
 | 
 | ||||||
| #[embassy_executor::main] | #[embassy_executor::main] | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user