aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-03-20 14:54:25 +0100
committerDario Nieuwenhuis <[email protected]>2024-03-20 16:39:09 +0100
commiteca9aac194580956c851e42565546e5fc50d8070 (patch)
tree9e5359afdfba6d1f17b8d5eff2f6aee40841d02e
parent3d842dac85a4ea21519f56d4ec6342b528805b8a (diff)
Fix warnings in recent nightly.
-rw-r--r--embassy-executor-macros/src/util/ctxt.rs1
-rw-r--r--embassy-executor/src/raw/mod.rs2
-rw-r--r--embassy-net-enc28j60/src/lib.rs7
-rw-r--r--embassy-net-tuntap/src/lib.rs2
-rw-r--r--embassy-nrf/src/gpio.rs2
-rw-r--r--embassy-nrf/src/gpiote.rs2
-rw-r--r--embassy-nrf/src/timer.rs2
-rw-r--r--embassy-rp/src/dma.rs2
-rw-r--r--embassy-rp/src/flash.rs2
-rw-r--r--embassy-rp/src/float/mod.rs1
-rw-r--r--embassy-rp/src/gpio.rs2
-rw-r--r--embassy-rp/src/lib.rs3
-rw-r--r--embassy-rp/src/relocate.rs2
-rw-r--r--embassy-rp/src/uart/buffered.rs10
-rw-r--r--embassy-rp/src/usb.rs11
-rw-r--r--embassy-stm32-wpan/src/consts.rs2
-rw-r--r--embassy-stm32/src/can/bx/mod.rs2
-rw-r--r--embassy-stm32/src/can/bxcan.rs1
-rw-r--r--embassy-stm32/src/can/fd/message_ram/mod.rs20
-rw-r--r--embassy-stm32/src/can/fdcan.rs4
-rw-r--r--embassy-stm32/src/dma/mod.rs1
-rw-r--r--embassy-stm32/src/flash/f0.rs1
-rw-r--r--embassy-stm32/src/flash/f1f3.rs1
-rw-r--r--embassy-stm32/src/flash/f4.rs1
-rw-r--r--embassy-stm32/src/flash/f7.rs1
-rw-r--r--embassy-stm32/src/flash/g.rs1
-rw-r--r--embassy-stm32/src/flash/h7.rs1
-rw-r--r--embassy-stm32/src/flash/u5.rs1
-rw-r--r--embassy-stm32/src/i2c/v1.rs1
-rw-r--r--embassy-stm32/src/i2c/v2.rs1
-rw-r--r--embassy-stm32/src/rtc/datetime.rs5
-rw-r--r--embassy-stm32/src/sdmmc/mod.rs2
-rw-r--r--embassy-stm32/src/time_driver.rs1
-rw-r--r--embassy-stm32/src/timer/complementary_pwm.rs1
-rw-r--r--embassy-stm32/src/timer/simple_pwm.rs1
-rw-r--r--embassy-stm32/src/uid.rs2
-rw-r--r--embassy-stm32/src/usart/buffered.rs5
-rw-r--r--embassy-stm32/src/usb/otg.rs4
-rw-r--r--embassy-stm32/src/usb/usb.rs11
-rw-r--r--examples/rp/src/bin/multicore.rs12
-rw-r--r--examples/std/src/bin/net.rs2
-rw-r--r--examples/std/src/bin/net_dns.rs2
-rw-r--r--examples/std/src/bin/tcp_accept.rs1
-rw-r--r--examples/stm32f2/src/bin/pll.rs2
-rw-r--r--examples/stm32h7/src/bin/camera.rs4
-rw-r--r--examples/stm32l4/src/bin/spe_adin1110_http_server.rs2
-rw-r--r--tests/rp/src/bin/gpio_multicore.rs12
-rw-r--r--tests/rp/src/bin/i2c.rs12
-rw-r--r--tests/rp/src/bin/multicore.rs12
49 files changed, 59 insertions, 124 deletions
diff --git a/embassy-executor-macros/src/util/ctxt.rs b/embassy-executor-macros/src/util/ctxt.rs
index 74c872c3c..9c78cda01 100644
--- a/embassy-executor-macros/src/util/ctxt.rs
+++ b/embassy-executor-macros/src/util/ctxt.rs
@@ -7,7 +7,6 @@ use std::thread;
7 7
8use proc_macro2::TokenStream; 8use proc_macro2::TokenStream;
9use quote::{quote, ToTokens}; 9use quote::{quote, ToTokens};
10use syn;
11 10
12/// A type to collect errors together and format them. 11/// A type to collect errors together and format them.
13/// 12///
diff --git a/embassy-executor/src/raw/mod.rs b/embassy-executor/src/raw/mod.rs
index 3d5e3ab9f..d9ea5c005 100644
--- a/embassy-executor/src/raw/mod.rs
+++ b/embassy-executor/src/raw/mod.rs
@@ -30,7 +30,7 @@ use core::ptr::NonNull;
30use core::task::{Context, Poll}; 30use core::task::{Context, Poll};
31 31
32#[cfg(feature = "integrated-timers")] 32#[cfg(feature = "integrated-timers")]
33use embassy_time_driver::{self, AlarmHandle}; 33use embassy_time_driver::AlarmHandle;
34#[cfg(feature = "rtos-trace")] 34#[cfg(feature = "rtos-trace")]
35use rtos_trace::trace; 35use rtos_trace::trace;
36 36
diff --git a/embassy-net-enc28j60/src/lib.rs b/embassy-net-enc28j60/src/lib.rs
index f18134927..dda35f498 100644
--- a/embassy-net-enc28j60/src/lib.rs
+++ b/embassy-net-enc28j60/src/lib.rs
@@ -17,7 +17,6 @@ mod phy;
17mod traits; 17mod traits;
18 18
19use core::cmp; 19use core::cmp;
20use core::convert::TryInto;
21 20
22use embassy_net_driver::{Capabilities, HardwareAddress, LinkState}; 21use embassy_net_driver::{Capabilities, HardwareAddress, LinkState};
23use embassy_time::Duration; 22use embassy_time::Duration;
@@ -645,8 +644,8 @@ where
645 Self: 'a; 644 Self: 'a;
646 645
647 fn receive(&mut self, cx: &mut core::task::Context) -> Option<(Self::RxToken<'_>, Self::TxToken<'_>)> { 646 fn receive(&mut self, cx: &mut core::task::Context) -> Option<(Self::RxToken<'_>, Self::TxToken<'_>)> {
648 let rx_buf = unsafe { &mut RX_BUF }; 647 let rx_buf = unsafe { &mut *core::ptr::addr_of_mut!(RX_BUF) };
649 let tx_buf = unsafe { &mut TX_BUF }; 648 let tx_buf = unsafe { &mut *core::ptr::addr_of_mut!(TX_BUF) };
650 if let Some(n) = self.receive(rx_buf) { 649 if let Some(n) = self.receive(rx_buf) {
651 Some((RxToken { buf: &mut rx_buf[..n] }, TxToken { buf: tx_buf, eth: self })) 650 Some((RxToken { buf: &mut rx_buf[..n] }, TxToken { buf: tx_buf, eth: self }))
652 } else { 651 } else {
@@ -656,7 +655,7 @@ where
656 } 655 }
657 656
658 fn transmit(&mut self, _cx: &mut core::task::Context) -> Option<Self::TxToken<'_>> { 657 fn transmit(&mut self, _cx: &mut core::task::Context) -> Option<Self::TxToken<'_>> {
659 let tx_buf = unsafe { &mut TX_BUF }; 658 let tx_buf = unsafe { &mut *core::ptr::addr_of_mut!(TX_BUF) };
660 Some(TxToken { buf: tx_buf, eth: self }) 659 Some(TxToken { buf: tx_buf, eth: self })
661 } 660 }
662 661
diff --git a/embassy-net-tuntap/src/lib.rs b/embassy-net-tuntap/src/lib.rs
index de30934eb..56f55fba1 100644
--- a/embassy-net-tuntap/src/lib.rs
+++ b/embassy-net-tuntap/src/lib.rs
@@ -6,7 +6,7 @@ use std::os::unix::io::{AsRawFd, RawFd};
6use std::task::Context; 6use std::task::Context;
7 7
8use async_io::Async; 8use async_io::Async;
9use embassy_net_driver::{self, Capabilities, Driver, HardwareAddress, LinkState}; 9use embassy_net_driver::{Capabilities, Driver, HardwareAddress, LinkState};
10use log::*; 10use log::*;
11 11
12/// Get the MTU of the given interface. 12/// Get the MTU of the given interface.
diff --git a/embassy-nrf/src/gpio.rs b/embassy-nrf/src/gpio.rs
index 3649ea61a..f2353f21d 100644
--- a/embassy-nrf/src/gpio.rs
+++ b/embassy-nrf/src/gpio.rs
@@ -473,10 +473,12 @@ impl sealed::Pin for AnyPin {
473 473
474// ==================== 474// ====================
475 475
476#[cfg(not(feature = "_nrf51"))]
476pub(crate) trait PselBits { 477pub(crate) trait PselBits {
477 fn psel_bits(&self) -> u32; 478 fn psel_bits(&self) -> u32;
478} 479}
479 480
481#[cfg(not(feature = "_nrf51"))]
480impl<'a, P: Pin> PselBits for Option<PeripheralRef<'a, P>> { 482impl<'a, P: Pin> PselBits for Option<PeripheralRef<'a, P>> {
481 #[inline] 483 #[inline]
482 fn psel_bits(&self) -> u32 { 484 fn psel_bits(&self) -> u32 {
diff --git a/embassy-nrf/src/gpiote.rs b/embassy-nrf/src/gpiote.rs
index 12f4ed0a0..4a28279a9 100644
--- a/embassy-nrf/src/gpiote.rs
+++ b/embassy-nrf/src/gpiote.rs
@@ -167,8 +167,10 @@ unsafe fn handle_gpiote_interrupt() {
167 } 167 }
168} 168}
169 169
170#[cfg(not(feature = "_nrf51"))]
170struct BitIter(u32); 171struct BitIter(u32);
171 172
173#[cfg(not(feature = "_nrf51"))]
172impl Iterator for BitIter { 174impl Iterator for BitIter {
173 type Item = u32; 175 type Item = u32;
174 176
diff --git a/embassy-nrf/src/timer.rs b/embassy-nrf/src/timer.rs
index 3c35baee5..2970ad3f2 100644
--- a/embassy-nrf/src/timer.rs
+++ b/embassy-nrf/src/timer.rs
@@ -21,8 +21,6 @@ pub(crate) mod sealed {
21 fn regs() -> &'static pac::timer0::RegisterBlock; 21 fn regs() -> &'static pac::timer0::RegisterBlock;
22 } 22 }
23 pub trait ExtendedInstance {} 23 pub trait ExtendedInstance {}
24
25 pub trait TimerType {}
26} 24}
27 25
28/// Basic Timer instance. 26/// Basic Timer instance.
diff --git a/embassy-rp/src/dma.rs b/embassy-rp/src/dma.rs
index 088a842a1..44aabce6b 100644
--- a/embassy-rp/src/dma.rs
+++ b/embassy-rp/src/dma.rs
@@ -96,7 +96,7 @@ pub unsafe fn write_repeated<'a, C: Channel, W: Word>(
96) -> Transfer<'a, C> { 96) -> Transfer<'a, C> {
97 copy_inner( 97 copy_inner(
98 ch, 98 ch,
99 &mut DUMMY as *const u32, 99 core::ptr::addr_of_mut!(DUMMY) as *const u32,
100 to as *mut u32, 100 to as *mut u32,
101 len, 101 len,
102 W::size(), 102 W::size(),
diff --git a/embassy-rp/src/flash.rs b/embassy-rp/src/flash.rs
index 2d673cf6c..68b1ecab3 100644
--- a/embassy-rp/src/flash.rs
+++ b/embassy-rp/src/flash.rs
@@ -420,8 +420,6 @@ impl<'d, T: Instance, const FLASH_SIZE: usize> embedded_storage_async::nor_flash
420 420
421#[allow(dead_code)] 421#[allow(dead_code)]
422mod ram_helpers { 422mod ram_helpers {
423 use core::marker::PhantomData;
424
425 use super::*; 423 use super::*;
426 use crate::rom_data; 424 use crate::rom_data;
427 425
diff --git a/embassy-rp/src/float/mod.rs b/embassy-rp/src/float/mod.rs
index 945afff90..3ad6f1c50 100644
--- a/embassy-rp/src/float/mod.rs
+++ b/embassy-rp/src/float/mod.rs
@@ -89,6 +89,7 @@ pub(crate) trait Float:
89 } 89 }
90 90
91 /// Returns true if `self` is infinity 91 /// Returns true if `self` is infinity
92 #[allow(unused)]
92 fn is_infinity(self) -> bool { 93 fn is_infinity(self) -> bool {
93 (self.repr() & (Self::EXPONENT_MASK | Self::SIGNIFICAND_MASK)) == Self::EXPONENT_MASK 94 (self.repr() & (Self::EXPONENT_MASK | Self::SIGNIFICAND_MASK)) == Self::EXPONENT_MASK
94 } 95 }
diff --git a/embassy-rp/src/gpio.rs b/embassy-rp/src/gpio.rs
index 62eeb4cf6..ddba8f8fb 100644
--- a/embassy-rp/src/gpio.rs
+++ b/embassy-rp/src/gpio.rs
@@ -976,8 +976,6 @@ impl_pin!(PIN_QSPI_SD3, Bank::Qspi, 5);
976// ==================== 976// ====================
977 977
978mod eh02 { 978mod eh02 {
979 use core::convert::Infallible;
980
981 use super::*; 979 use super::*;
982 980
983 impl<'d> embedded_hal_02::digital::v2::InputPin for Input<'d> { 981 impl<'d> embedded_hal_02::digital::v2::InputPin for Input<'d> {
diff --git a/embassy-rp/src/lib.rs b/embassy-rp/src/lib.rs
index 7092b3fab..d91cea410 100644
--- a/embassy-rp/src/lib.rs
+++ b/embassy-rp/src/lib.rs
@@ -274,7 +274,7 @@ pub fn install_core0_stack_guard() -> Result<(), ()> {
274 extern "C" { 274 extern "C" {
275 static mut _stack_end: usize; 275 static mut _stack_end: usize;
276 } 276 }
277 unsafe { install_stack_guard(&mut _stack_end as *mut usize) } 277 unsafe { install_stack_guard(core::ptr::addr_of_mut!(_stack_end)) }
278} 278}
279 279
280#[inline(always)] 280#[inline(always)]
@@ -354,6 +354,7 @@ pub fn init(config: config::Config) -> Peripherals {
354 354
355/// Extension trait for PAC regs, adding atomic xor/bitset/bitclear writes. 355/// Extension trait for PAC regs, adding atomic xor/bitset/bitclear writes.
356trait RegExt<T: Copy> { 356trait RegExt<T: Copy> {
357 #[allow(unused)]
357 fn write_xor<R>(&self, f: impl FnOnce(&mut T) -> R) -> R; 358 fn write_xor<R>(&self, f: impl FnOnce(&mut T) -> R) -> R;
358 fn write_set<R>(&self, f: impl FnOnce(&mut T) -> R) -> R; 359 fn write_set<R>(&self, f: impl FnOnce(&mut T) -> R) -> R;
359 fn write_clear<R>(&self, f: impl FnOnce(&mut T) -> R) -> R; 360 fn write_clear<R>(&self, f: impl FnOnce(&mut T) -> R) -> R;
diff --git a/embassy-rp/src/relocate.rs b/embassy-rp/src/relocate.rs
index b35b4ed72..6139d892f 100644
--- a/embassy-rp/src/relocate.rs
+++ b/embassy-rp/src/relocate.rs
@@ -1,5 +1,3 @@
1use core::iter::Iterator;
2
3use pio::{Program, SideSet, Wrap}; 1use pio::{Program, SideSet, Wrap};
4 2
5pub struct CodeIterator<'a, I> 3pub struct CodeIterator<'a, I>
diff --git a/embassy-rp/src/uart/buffered.rs b/embassy-rp/src/uart/buffered.rs
index 99c958129..8178cd801 100644
--- a/embassy-rp/src/uart/buffered.rs
+++ b/embassy-rp/src/uart/buffered.rs
@@ -1,17 +1,11 @@
1//! Buffered UART driver. 1//! Buffered UART driver.
2use core::future::{poll_fn, Future}; 2use core::future::Future;
3use core::slice; 3use core::slice;
4use core::task::Poll;
5 4
6use atomic_polyfill::{AtomicU8, Ordering}; 5use atomic_polyfill::AtomicU8;
7use embassy_hal_internal::atomic_ring_buffer::RingBuffer; 6use embassy_hal_internal::atomic_ring_buffer::RingBuffer;
8use embassy_sync::waitqueue::AtomicWaker;
9use embassy_time::Timer;
10 7
11use super::*; 8use super::*;
12use crate::clocks::clk_peri_freq;
13use crate::interrupt::typelevel::{Binding, Interrupt};
14use crate::{interrupt, RegExt};
15 9
16pub struct State { 10pub struct State {
17 tx_waker: AtomicWaker, 11 tx_waker: AtomicWaker,
diff --git a/embassy-rp/src/usb.rs b/embassy-rp/src/usb.rs
index 905661d64..d68dee4a3 100644
--- a/embassy-rp/src/usb.rs
+++ b/embassy-rp/src/usb.rs
@@ -465,7 +465,6 @@ impl<'d, T: Instance> driver::Bus for Bus<'d, T> {
465 465
466trait Dir { 466trait Dir {
467 fn dir() -> Direction; 467 fn dir() -> Direction;
468 fn waker(i: usize) -> &'static AtomicWaker;
469} 468}
470 469
471/// Type for In direction. 470/// Type for In direction.
@@ -474,11 +473,6 @@ impl Dir for In {
474 fn dir() -> Direction { 473 fn dir() -> Direction {
475 Direction::In 474 Direction::In
476 } 475 }
477
478 #[inline]
479 fn waker(i: usize) -> &'static AtomicWaker {
480 &EP_IN_WAKERS[i]
481 }
482} 476}
483 477
484/// Type for Out direction. 478/// Type for Out direction.
@@ -487,11 +481,6 @@ impl Dir for Out {
487 fn dir() -> Direction { 481 fn dir() -> Direction {
488 Direction::Out 482 Direction::Out
489 } 483 }
490
491 #[inline]
492 fn waker(i: usize) -> &'static AtomicWaker {
493 &EP_OUT_WAKERS[i]
494 }
495} 484}
496 485
497/// Endpoint for RP USB driver. 486/// Endpoint for RP USB driver.
diff --git a/embassy-stm32-wpan/src/consts.rs b/embassy-stm32-wpan/src/consts.rs
index bd70851ea..6aaef1d35 100644
--- a/embassy-stm32-wpan/src/consts.rs
+++ b/embassy-stm32-wpan/src/consts.rs
@@ -1,5 +1,3 @@
1use core::convert::TryFrom;
2
3use crate::evt::CsEvt; 1use crate::evt::CsEvt;
4use crate::PacketHeader; 2use crate::PacketHeader;
5 3
diff --git a/embassy-stm32/src/can/bx/mod.rs b/embassy-stm32/src/can/bx/mod.rs
index 33e702c6e..a369ae6fd 100644
--- a/embassy-stm32/src/can/bx/mod.rs
+++ b/embassy-stm32/src/can/bx/mod.rs
@@ -28,7 +28,7 @@ pub mod filter;
28 28
29#[allow(clippy::all)] // generated code 29#[allow(clippy::all)] // generated code
30use core::cmp::{Ord, Ordering}; 30use core::cmp::{Ord, Ordering};
31use core::convert::{Infallible, Into, TryInto}; 31use core::convert::Infallible;
32use core::marker::PhantomData; 32use core::marker::PhantomData;
33use core::mem; 33use core::mem;
34 34
diff --git a/embassy-stm32/src/can/bxcan.rs b/embassy-stm32/src/can/bxcan.rs
index bb7cc3d7f..1a625bdc4 100644
--- a/embassy-stm32/src/can/bxcan.rs
+++ b/embassy-stm32/src/can/bxcan.rs
@@ -1,4 +1,3 @@
1use core::convert::AsMut;
2use core::future::poll_fn; 1use core::future::poll_fn;
3use core::marker::PhantomData; 2use core::marker::PhantomData;
4use core::ops::{Deref, DerefMut}; 3use core::ops::{Deref, DerefMut};
diff --git a/embassy-stm32/src/can/fd/message_ram/mod.rs b/embassy-stm32/src/can/fd/message_ram/mod.rs
index 830edf3bb..040a999b4 100644
--- a/embassy-stm32/src/can/fd/message_ram/mod.rs
+++ b/embassy-stm32/src/can/fd/message_ram/mod.rs
@@ -140,26 +140,6 @@ pub(crate) struct _TxBufferElement;
140impl generic::Readable for TxBufferElementHeader {} 140impl generic::Readable for TxBufferElementHeader {}
141impl generic::Writable for TxBufferElementHeader {} 141impl generic::Writable for TxBufferElementHeader {}
142 142
143/// FdCan Message RAM instance.
144///
145/// # Safety
146///
147/// It is only safe to implement this trait, when:
148///
149/// * The implementing type has ownership of the Message RAM, preventing any
150/// other accesses to the register block.
151/// * `MSG_RAM` is a pointer to the Message RAM block and can be safely accessed
152/// for as long as ownership or a borrow of the implementing type is present.
153pub unsafe trait Instance {
154 const MSG_RAM: *mut RegisterBlock;
155 fn msg_ram(&self) -> &RegisterBlock {
156 unsafe { &*Self::MSG_RAM }
157 }
158 fn msg_ram_mut(&mut self) -> &mut RegisterBlock {
159 unsafe { &mut *Self::MSG_RAM }
160 }
161}
162
163// Ensure the RegisterBlock is the same size as on pg 1957 of RM0440. 143// Ensure the RegisterBlock is the same size as on pg 1957 of RM0440.
164static_assertions::assert_eq_size!(Filters, [u32; 28 + 16]); 144static_assertions::assert_eq_size!(Filters, [u32; 28 + 16]);
165static_assertions::assert_eq_size!(Receive, [u32; 54]); 145static_assertions::assert_eq_size!(Receive, [u32; 54]);
diff --git a/embassy-stm32/src/can/fdcan.rs b/embassy-stm32/src/can/fdcan.rs
index fe8969a5a..4c40f10e3 100644
--- a/embassy-stm32/src/can/fdcan.rs
+++ b/embassy-stm32/src/can/fdcan.rs
@@ -883,9 +883,9 @@ macro_rules! impl_fdcan {
883 fn ram() -> &'static crate::pac::fdcanram::Fdcanram { 883 fn ram() -> &'static crate::pac::fdcanram::Fdcanram {
884 &crate::pac::$msg_ram_inst 884 &crate::pac::$msg_ram_inst
885 } 885 }
886 unsafe fn mut_state() -> & 'static mut sealed::State { 886 unsafe fn mut_state() -> &'static mut sealed::State {
887 static mut STATE: sealed::State = sealed::State::new(); 887 static mut STATE: sealed::State = sealed::State::new();
888 & mut STATE 888 &mut *core::ptr::addr_of_mut!(STATE)
889 } 889 }
890 fn state() -> &'static sealed::State { 890 fn state() -> &'static sealed::State {
891 unsafe { peripherals::$inst::mut_state() } 891 unsafe { peripherals::$inst::mut_state() }
diff --git a/embassy-stm32/src/dma/mod.rs b/embassy-stm32/src/dma/mod.rs
index d5e88a20a..2f98b9857 100644
--- a/embassy-stm32/src/dma/mod.rs
+++ b/embassy-stm32/src/dma/mod.rs
@@ -44,6 +44,7 @@ pub(crate) mod sealed {
44 fn id(&self) -> u8; 44 fn id(&self) -> u8;
45 } 45 }
46 pub trait ChannelInterrupt { 46 pub trait ChannelInterrupt {
47 #[cfg_attr(not(feature = "rt"), allow(unused))]
47 unsafe fn on_irq(); 48 unsafe fn on_irq();
48 } 49 }
49} 50}
diff --git a/embassy-stm32/src/flash/f0.rs b/embassy-stm32/src/flash/f0.rs
index e0c76e6b2..e2f135208 100644
--- a/embassy-stm32/src/flash/f0.rs
+++ b/embassy-stm32/src/flash/f0.rs
@@ -1,4 +1,3 @@
1use core::convert::TryInto;
2use core::ptr::write_volatile; 1use core::ptr::write_volatile;
3use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
4 3
diff --git a/embassy-stm32/src/flash/f1f3.rs b/embassy-stm32/src/flash/f1f3.rs
index e7790369a..b16354a74 100644
--- a/embassy-stm32/src/flash/f1f3.rs
+++ b/embassy-stm32/src/flash/f1f3.rs
@@ -1,4 +1,3 @@
1use core::convert::TryInto;
2use core::ptr::write_volatile; 1use core::ptr::write_volatile;
3use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
4 3
diff --git a/embassy-stm32/src/flash/f4.rs b/embassy-stm32/src/flash/f4.rs
index 57447bea5..00e61f2d2 100644
--- a/embassy-stm32/src/flash/f4.rs
+++ b/embassy-stm32/src/flash/f4.rs
@@ -1,4 +1,3 @@
1use core::convert::TryInto;
2use core::ptr::write_volatile; 1use core::ptr::write_volatile;
3use core::sync::atomic::{fence, AtomicBool, Ordering}; 2use core::sync::atomic::{fence, AtomicBool, Ordering};
4 3
diff --git a/embassy-stm32/src/flash/f7.rs b/embassy-stm32/src/flash/f7.rs
index 0f512bbc4..72de0b445 100644
--- a/embassy-stm32/src/flash/f7.rs
+++ b/embassy-stm32/src/flash/f7.rs
@@ -1,4 +1,3 @@
1use core::convert::TryInto;
2use core::ptr::write_volatile; 1use core::ptr::write_volatile;
3use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
4 3
diff --git a/embassy-stm32/src/flash/g.rs b/embassy-stm32/src/flash/g.rs
index b69c4343b..6a5adc941 100644
--- a/embassy-stm32/src/flash/g.rs
+++ b/embassy-stm32/src/flash/g.rs
@@ -1,4 +1,3 @@
1use core::convert::TryInto;
2use core::ptr::write_volatile; 1use core::ptr::write_volatile;
3use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
4 3
diff --git a/embassy-stm32/src/flash/h7.rs b/embassy-stm32/src/flash/h7.rs
index 743925e17..e32a82eef 100644
--- a/embassy-stm32/src/flash/h7.rs
+++ b/embassy-stm32/src/flash/h7.rs
@@ -1,4 +1,3 @@
1use core::convert::TryInto;
2use core::ptr::write_volatile; 1use core::ptr::write_volatile;
3use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
4 3
diff --git a/embassy-stm32/src/flash/u5.rs b/embassy-stm32/src/flash/u5.rs
index 3787082f9..580c490da 100644
--- a/embassy-stm32/src/flash/u5.rs
+++ b/embassy-stm32/src/flash/u5.rs
@@ -1,4 +1,3 @@
1use core::convert::TryInto;
2use core::ptr::write_volatile; 1use core::ptr::write_volatile;
3use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
4 3
diff --git a/embassy-stm32/src/i2c/v1.rs b/embassy-stm32/src/i2c/v1.rs
index f1ed7ca40..9f29ed5e0 100644
--- a/embassy-stm32/src/i2c/v1.rs
+++ b/embassy-stm32/src/i2c/v1.rs
@@ -15,7 +15,6 @@ use embedded_hal_1::i2c::Operation;
15use super::*; 15use super::*;
16use crate::dma::Transfer; 16use crate::dma::Transfer;
17use crate::pac::i2c; 17use crate::pac::i2c;
18use crate::time::Hertz;
19 18
20// /!\ /!\ 19// /!\ /!\
21// /!\ Implementation note! /!\ 20// /!\ Implementation note! /!\
diff --git a/embassy-stm32/src/i2c/v2.rs b/embassy-stm32/src/i2c/v2.rs
index 1ac2740df..8baf2849d 100644
--- a/embassy-stm32/src/i2c/v2.rs
+++ b/embassy-stm32/src/i2c/v2.rs
@@ -9,7 +9,6 @@ use embedded_hal_1::i2c::Operation;
9use super::*; 9use super::*;
10use crate::dma::Transfer; 10use crate::dma::Transfer;
11use crate::pac::i2c; 11use crate::pac::i2c;
12use crate::time::Hertz;
13 12
14pub(crate) unsafe fn on_interrupt<T: Instance>() { 13pub(crate) unsafe fn on_interrupt<T: Instance>() {
15 let regs = T::regs(); 14 let regs = T::regs();
diff --git a/embassy-stm32/src/rtc/datetime.rs b/embassy-stm32/src/rtc/datetime.rs
index ef92fa4bb..2bad79923 100644
--- a/embassy-stm32/src/rtc/datetime.rs
+++ b/embassy-stm32/src/rtc/datetime.rs
@@ -1,8 +1,5 @@
1#[cfg(feature = "chrono")] 1#[cfg(feature = "chrono")]
2use core::convert::From; 2use chrono::{Datelike, NaiveDate, Timelike, Weekday};
3
4#[cfg(feature = "chrono")]
5use chrono::{self, Datelike, NaiveDate, Timelike, Weekday};
6 3
7#[cfg(any(feature = "defmt", feature = "time"))] 4#[cfg(any(feature = "defmt", feature = "time"))]
8use crate::peripherals::RTC; 5use crate::peripherals::RTC;
diff --git a/embassy-stm32/src/sdmmc/mod.rs b/embassy-stm32/src/sdmmc/mod.rs
index fa1f710d8..c0b3a2183 100644
--- a/embassy-stm32/src/sdmmc/mod.rs
+++ b/embassy-stm32/src/sdmmc/mod.rs
@@ -1427,8 +1427,6 @@ pub(crate) mod sealed {
1427 fn regs() -> RegBlock; 1427 fn regs() -> RegBlock;
1428 fn state() -> &'static AtomicWaker; 1428 fn state() -> &'static AtomicWaker;
1429 } 1429 }
1430
1431 pub trait Pins<T: Instance> {}
1432} 1430}
1433 1431
1434/// SDMMC instance trait. 1432/// SDMMC instance trait.
diff --git a/embassy-stm32/src/time_driver.rs b/embassy-stm32/src/time_driver.rs
index 37b2e7526..9be56d3d1 100644
--- a/embassy-stm32/src/time_driver.rs
+++ b/embassy-stm32/src/time_driver.rs
@@ -1,7 +1,6 @@
1#![allow(non_snake_case)] 1#![allow(non_snake_case)]
2 2
3use core::cell::Cell; 3use core::cell::Cell;
4use core::convert::TryInto;
5use core::sync::atomic::{compiler_fence, AtomicU32, AtomicU8, Ordering}; 4use core::sync::atomic::{compiler_fence, AtomicU32, AtomicU8, Ordering};
6use core::{mem, ptr}; 5use core::{mem, ptr};
7 6
diff --git a/embassy-stm32/src/timer/complementary_pwm.rs b/embassy-stm32/src/timer/complementary_pwm.rs
index 72f1ec864..723e8506b 100644
--- a/embassy-stm32/src/timer/complementary_pwm.rs
+++ b/embassy-stm32/src/timer/complementary_pwm.rs
@@ -10,7 +10,6 @@ use super::*;
10#[allow(unused_imports)] 10#[allow(unused_imports)]
11use crate::gpio::sealed::{AFType, Pin}; 11use crate::gpio::sealed::{AFType, Pin};
12use crate::gpio::{AnyPin, OutputType}; 12use crate::gpio::{AnyPin, OutputType};
13use crate::time::Hertz;
14use crate::Peripheral; 13use crate::Peripheral;
15 14
16/// Complementary PWM pin wrapper. 15/// Complementary PWM pin wrapper.
diff --git a/embassy-stm32/src/timer/simple_pwm.rs b/embassy-stm32/src/timer/simple_pwm.rs
index 6df2f66ec..4669fc6cc 100644
--- a/embassy-stm32/src/timer/simple_pwm.rs
+++ b/embassy-stm32/src/timer/simple_pwm.rs
@@ -8,7 +8,6 @@ use super::*;
8#[allow(unused_imports)] 8#[allow(unused_imports)]
9use crate::gpio::sealed::{AFType, Pin}; 9use crate::gpio::sealed::{AFType, Pin};
10use crate::gpio::{AnyPin, OutputType}; 10use crate::gpio::{AnyPin, OutputType};
11use crate::time::Hertz;
12use crate::Peripheral; 11use crate::Peripheral;
13 12
14/// Channel 1 marker type. 13/// Channel 1 marker type.
diff --git a/embassy-stm32/src/uid.rs b/embassy-stm32/src/uid.rs
index aa13586f8..5e38532bd 100644
--- a/embassy-stm32/src/uid.rs
+++ b/embassy-stm32/src/uid.rs
@@ -27,5 +27,5 @@ pub fn uid_hex_bytes() -> &'static [u8; 24] {
27 LOADED = true; 27 LOADED = true;
28 } 28 }
29 }); 29 });
30 unsafe { &UID_HEX } 30 unsafe { &*core::ptr::addr_of!(UID_HEX) }
31} 31}
diff --git a/embassy-stm32/src/usart/buffered.rs b/embassy-stm32/src/usart/buffered.rs
index c11e3382f..683b0f8b2 100644
--- a/embassy-stm32/src/usart/buffered.rs
+++ b/embassy-stm32/src/usart/buffered.rs
@@ -1,13 +1,10 @@
1use core::future::poll_fn;
2use core::slice; 1use core::slice;
3use core::sync::atomic::{AtomicBool, Ordering}; 2use core::sync::atomic::AtomicBool;
4use core::task::Poll;
5 3
6use embassy_hal_internal::atomic_ring_buffer::RingBuffer; 4use embassy_hal_internal::atomic_ring_buffer::RingBuffer;
7use embassy_sync::waitqueue::AtomicWaker; 5use embassy_sync::waitqueue::AtomicWaker;
8 6
9use super::*; 7use super::*;
10use crate::interrupt::typelevel::Interrupt;
11 8
12/// Interrupt handler. 9/// Interrupt handler.
13pub struct InterruptHandler<T: BasicInstance> { 10pub struct InterruptHandler<T: BasicInstance> {
diff --git a/embassy-stm32/src/usb/otg.rs b/embassy-stm32/src/usb/otg.rs
index 80a08f3c5..d4095b466 100644
--- a/embassy-stm32/src/usb/otg.rs
+++ b/embassy-stm32/src/usb/otg.rs
@@ -6,8 +6,8 @@ use core::task::Poll;
6use embassy_hal_internal::{into_ref, Peripheral}; 6use embassy_hal_internal::{into_ref, Peripheral};
7use embassy_sync::waitqueue::AtomicWaker; 7use embassy_sync::waitqueue::AtomicWaker;
8use embassy_usb_driver::{ 8use embassy_usb_driver::{
9 self, Bus as _, Direction, EndpointAddress, EndpointAllocError, EndpointError, EndpointIn, EndpointInfo, 9 Bus as _, Direction, EndpointAddress, EndpointAllocError, EndpointError, EndpointIn, EndpointInfo, EndpointOut,
10 EndpointOut, EndpointType, Event, Unsupported, 10 EndpointType, Event, Unsupported,
11}; 11};
12use futures::future::poll_fn; 12use futures::future::poll_fn;
13 13
diff --git a/embassy-stm32/src/usb/usb.rs b/embassy-stm32/src/usb/usb.rs
index 1fb2c9ebb..c4f9140da 100644
--- a/embassy-stm32/src/usb/usb.rs
+++ b/embassy-stm32/src/usb/usb.rs
@@ -637,7 +637,6 @@ impl<'d, T: Instance> driver::Bus for Bus<'d, T> {
637 637
638trait Dir { 638trait Dir {
639 fn dir() -> Direction; 639 fn dir() -> Direction;
640 fn waker(i: usize) -> &'static AtomicWaker;
641} 640}
642 641
643/// Marker type for the "IN" direction. 642/// Marker type for the "IN" direction.
@@ -646,11 +645,6 @@ impl Dir for In {
646 fn dir() -> Direction { 645 fn dir() -> Direction {
647 Direction::In 646 Direction::In
648 } 647 }
649
650 #[inline]
651 fn waker(i: usize) -> &'static AtomicWaker {
652 &EP_IN_WAKERS[i]
653 }
654} 648}
655 649
656/// Marker type for the "OUT" direction. 650/// Marker type for the "OUT" direction.
@@ -659,11 +653,6 @@ impl Dir for Out {
659 fn dir() -> Direction { 653 fn dir() -> Direction {
660 Direction::Out 654 Direction::Out
661 } 655 }
662
663 #[inline]
664 fn waker(i: usize) -> &'static AtomicWaker {
665 &EP_OUT_WAKERS[i]
666 }
667} 656}
668 657
669/// USB endpoint. 658/// USB endpoint.
diff --git a/examples/rp/src/bin/multicore.rs b/examples/rp/src/bin/multicore.rs
index c7b087476..7cb546c91 100644
--- a/examples/rp/src/bin/multicore.rs
+++ b/examples/rp/src/bin/multicore.rs
@@ -30,10 +30,14 @@ fn main() -> ! {
30 let p = embassy_rp::init(Default::default()); 30 let p = embassy_rp::init(Default::default());
31 let led = Output::new(p.PIN_25, Level::Low); 31 let led = Output::new(p.PIN_25, Level::Low);
32 32
33 spawn_core1(p.CORE1, unsafe { &mut CORE1_STACK }, move || { 33 spawn_core1(
34 let executor1 = EXECUTOR1.init(Executor::new()); 34 p.CORE1,
35 executor1.run(|spawner| unwrap!(spawner.spawn(core1_task(led)))); 35 unsafe { &mut *core::ptr::addr_of_mut!(CORE1_STACK) },
36 }); 36 move || {
37 let executor1 = EXECUTOR1.init(Executor::new());
38 executor1.run(|spawner| unwrap!(spawner.spawn(core1_task(led))));
39 },
40 );
37 41
38 let executor0 = EXECUTOR0.init(Executor::new()); 42 let executor0 = EXECUTOR0.init(Executor::new());
39 executor0.run(|spawner| unwrap!(spawner.spawn(core0_task()))); 43 executor0.run(|spawner| unwrap!(spawner.spawn(core0_task())));
diff --git a/examples/std/src/bin/net.rs b/examples/std/src/bin/net.rs
index dad93d0a1..59813d8cb 100644
--- a/examples/std/src/bin/net.rs
+++ b/examples/std/src/bin/net.rs
@@ -1,5 +1,3 @@
1use std::default::Default;
2
3use clap::Parser; 1use clap::Parser;
4use embassy_executor::{Executor, Spawner}; 2use embassy_executor::{Executor, Spawner};
5use embassy_net::tcp::TcpSocket; 3use embassy_net::tcp::TcpSocket;
diff --git a/examples/std/src/bin/net_dns.rs b/examples/std/src/bin/net_dns.rs
index fca1e076e..3b6a3de37 100644
--- a/examples/std/src/bin/net_dns.rs
+++ b/examples/std/src/bin/net_dns.rs
@@ -1,5 +1,3 @@
1use std::default::Default;
2
3use clap::Parser; 1use clap::Parser;
4use embassy_executor::{Executor, Spawner}; 2use embassy_executor::{Executor, Spawner};
5use embassy_net::dns::DnsQueryType; 3use embassy_net::dns::DnsQueryType;
diff --git a/examples/std/src/bin/tcp_accept.rs b/examples/std/src/bin/tcp_accept.rs
index 00ccd83a7..e8b6eaa6c 100644
--- a/examples/std/src/bin/tcp_accept.rs
+++ b/examples/std/src/bin/tcp_accept.rs
@@ -1,5 +1,4 @@
1use core::fmt::Write as _; 1use core::fmt::Write as _;
2use std::default::Default;
3 2
4use clap::Parser; 3use clap::Parser;
5use embassy_executor::{Executor, Spawner}; 4use embassy_executor::{Executor, Spawner};
diff --git a/examples/stm32f2/src/bin/pll.rs b/examples/stm32f2/src/bin/pll.rs
index e32f283d1..e39e2daec 100644
--- a/examples/stm32f2/src/bin/pll.rs
+++ b/examples/stm32f2/src/bin/pll.rs
@@ -1,8 +1,6 @@
1#![no_std] 1#![no_std]
2#![no_main] 2#![no_main]
3 3
4use core::convert::TryFrom;
5
6use defmt::*; 4use defmt::*;
7use embassy_executor::Spawner; 5use embassy_executor::Spawner;
8use embassy_stm32::time::Hertz; 6use embassy_stm32::time::Hertz;
diff --git a/examples/stm32h7/src/bin/camera.rs b/examples/stm32h7/src/bin/camera.rs
index e5a104baf..170a5aa28 100644
--- a/examples/stm32h7/src/bin/camera.rs
+++ b/examples/stm32h7/src/bin/camera.rs
@@ -78,9 +78,9 @@ async fn main(_spawner: Spawner) {
78 ); 78 );
79 79
80 defmt::info!("attempting capture"); 80 defmt::info!("attempting capture");
81 defmt::unwrap!(dcmi.capture(unsafe { &mut FRAME }).await); 81 defmt::unwrap!(dcmi.capture(unsafe { &mut *core::ptr::addr_of_mut!(FRAME) }).await);
82 82
83 defmt::info!("captured frame: {:x}", unsafe { &FRAME }); 83 defmt::info!("captured frame: {:x}", unsafe { &*core::ptr::addr_of!(FRAME) });
84 84
85 defmt::info!("main loop running"); 85 defmt::info!("main loop running");
86 loop { 86 loop {
diff --git a/examples/stm32l4/src/bin/spe_adin1110_http_server.rs b/examples/stm32l4/src/bin/spe_adin1110_http_server.rs
index 32bfab6eb..343e09e68 100644
--- a/examples/stm32l4/src/bin/spe_adin1110_http_server.rs
+++ b/examples/stm32l4/src/bin/spe_adin1110_http_server.rs
@@ -42,7 +42,7 @@ bind_interrupts!(struct Irqs {
42 RNG => rng::InterruptHandler<peripherals::RNG>; 42 RNG => rng::InterruptHandler<peripherals::RNG>;
43}); 43});
44 44
45use embassy_net_adin1110::{self, Device, Runner, ADIN1110}; 45use embassy_net_adin1110::{Device, Runner, ADIN1110};
46use embedded_hal_bus::spi::ExclusiveDevice; 46use embedded_hal_bus::spi::ExclusiveDevice;
47use hal::gpio::Pull; 47use hal::gpio::Pull;
48use hal::i2c::Config as I2C_Config; 48use hal::i2c::Config as I2C_Config;
diff --git a/tests/rp/src/bin/gpio_multicore.rs b/tests/rp/src/bin/gpio_multicore.rs
index 8aed9b80c..e9c6f3122 100644
--- a/tests/rp/src/bin/gpio_multicore.rs
+++ b/tests/rp/src/bin/gpio_multicore.rs
@@ -21,10 +21,14 @@ static CHANNEL1: Channel<CriticalSectionRawMutex, (), 1> = Channel::new();
21#[cortex_m_rt::entry] 21#[cortex_m_rt::entry]
22fn main() -> ! { 22fn main() -> ! {
23 let p = embassy_rp::init(Default::default()); 23 let p = embassy_rp::init(Default::default());
24 spawn_core1(p.CORE1, unsafe { &mut CORE1_STACK }, move || { 24 spawn_core1(
25 let executor1 = EXECUTOR1.init(Executor::new()); 25 p.CORE1,
26 executor1.run(|spawner| unwrap!(spawner.spawn(core1_task(p.PIN_1)))); 26 unsafe { &mut *core::ptr::addr_of_mut!(CORE1_STACK) },
27 }); 27 move || {
28 let executor1 = EXECUTOR1.init(Executor::new());
29 executor1.run(|spawner| unwrap!(spawner.spawn(core1_task(p.PIN_1))));
30 },
31 );
28 let executor0 = EXECUTOR0.init(Executor::new()); 32 let executor0 = EXECUTOR0.init(Executor::new());
29 executor0.run(|spawner| unwrap!(spawner.spawn(core0_task(p.PIN_0)))); 33 executor0.run(|spawner| unwrap!(spawner.spawn(core0_task(p.PIN_0))));
30} 34}
diff --git a/tests/rp/src/bin/i2c.rs b/tests/rp/src/bin/i2c.rs
index 153b37999..9615007bd 100644
--- a/tests/rp/src/bin/i2c.rs
+++ b/tests/rp/src/bin/i2c.rs
@@ -210,10 +210,14 @@ async fn controller_task(con: &mut i2c::I2c<'static, I2C0, i2c::Async>) {
210 config.addr = DEV_ADDR as u16; 210 config.addr = DEV_ADDR as u16;
211 let device = i2c_slave::I2cSlave::new(p.I2C1, d_sda, d_scl, Irqs, config); 211 let device = i2c_slave::I2cSlave::new(p.I2C1, d_sda, d_scl, Irqs, config);
212 212
213 spawn_core1(p.CORE1, unsafe { &mut CORE1_STACK }, move || { 213 spawn_core1(
214 let executor1 = EXECUTOR1.init(Executor::new()); 214 p.CORE1,
215 executor1.run(|spawner| unwrap!(spawner.spawn(device_task(device)))); 215 unsafe { &mut *core::ptr::addr_of_mut!(CORE1_STACK) },
216 }); 216 move || {
217 let executor1 = EXECUTOR1.init(Executor::new());
218 executor1.run(|spawner| unwrap!(spawner.spawn(device_task(device))));
219 },
220 );
217 221
218 let c_sda = p.PIN_21; 222 let c_sda = p.PIN_21;
219 let c_scl = p.PIN_20; 223 let c_scl = p.PIN_20;
diff --git a/tests/rp/src/bin/multicore.rs b/tests/rp/src/bin/multicore.rs
index 60d9f85ec..783ea0f27 100644
--- a/tests/rp/src/bin/multicore.rs
+++ b/tests/rp/src/bin/multicore.rs
@@ -19,10 +19,14 @@ static CHANNEL1: Channel<CriticalSectionRawMutex, bool, 1> = Channel::new();
19#[cortex_m_rt::entry] 19#[cortex_m_rt::entry]
20fn main() -> ! { 20fn main() -> ! {
21 let p = embassy_rp::init(Default::default()); 21 let p = embassy_rp::init(Default::default());
22 spawn_core1(p.CORE1, unsafe { &mut CORE1_STACK }, move || { 22 spawn_core1(
23 let executor1 = EXECUTOR1.init(Executor::new()); 23 p.CORE1,
24 executor1.run(|spawner| unwrap!(spawner.spawn(core1_task()))); 24 unsafe { &mut *core::ptr::addr_of_mut!(CORE1_STACK) },
25 }); 25 move || {
26 let executor1 = EXECUTOR1.init(Executor::new());
27 executor1.run(|spawner| unwrap!(spawner.spawn(core1_task())));
28 },
29 );
26 let executor0 = EXECUTOR0.init(Executor::new()); 30 let executor0 = EXECUTOR0.init(Executor::new());
27 executor0.run(|spawner| unwrap!(spawner.spawn(core0_task()))); 31 executor0.run(|spawner| unwrap!(spawner.spawn(core0_task())));
28} 32}