aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2022-12-23 20:46:49 +0100
committerDario Nieuwenhuis <[email protected]>2022-12-23 20:46:49 +0100
commit10c9cc31b14a356e58833fd6c81456251ab3fce9 (patch)
tree06d49a2a966cd71ca6b1706335285a3df6256d81
parentcd9a65ba3969460cd7ecb9200f12a828c26205aa (diff)
Remove unnecessary use of atomic-polyfill.
Only use it when CAS is actually needed.
-rw-r--r--.vscode/settings.json11
-rw-r--r--embassy-executor/src/arch/riscv32.rs3
-rw-r--r--embassy-executor/src/arch/xtensa.rs3
-rw-r--r--embassy-net/Cargo.toml1
-rw-r--r--embassy-net/src/tcp.rs2
-rw-r--r--embassy-rp/src/multicore.rs4
-rw-r--r--embassy-rp/src/usb.rs3
-rw-r--r--embassy-stm32/src/adc/v4.rs3
-rw-r--r--embassy-stm32/src/flash/f4.rs3
-rw-r--r--embassy-stm32/src/flash/f7.rs3
-rw-r--r--embassy-stm32/src/flash/h7.rs4
-rw-r--r--embassy-stm32/src/i2c/v2.rs5
-rw-r--r--embassy-stm32/src/usart/buffered.rs2
-rw-r--r--embassy-stm32/src/usart/mod.rs2
-rw-r--r--embassy-sync/Cargo.toml1
15 files changed, 22 insertions, 28 deletions
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 62e5a362f..fd2e4afb1 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -4,7 +4,8 @@
4 "rust-analyzer.checkOnSave.noDefaultFeatures": true, 4 "rust-analyzer.checkOnSave.noDefaultFeatures": true,
5 "rust-analyzer.cargo.noDefaultFeatures": true, 5 "rust-analyzer.cargo.noDefaultFeatures": true,
6 "rust-analyzer.procMacro.enable": true, 6 "rust-analyzer.procMacro.enable": true,
7 "rust-analyzer.cargo.target": "thumbv7em-none-eabi", 7 //"rust-analyzer.cargo.target": "thumbv7em-none-eabi",
8 "rust-analyzer.cargo.target": "thumbv8m.main-none-eabihf",
8 "rust-analyzer.cargo.features": [ 9 "rust-analyzer.cargo.features": [
9 // These are needed to prevent embassy-net from failing to build 10 // These are needed to prevent embassy-net from failing to build
10 //"embassy-net/medium-ethernet", 11 //"embassy-net/medium-ethernet",
@@ -12,19 +13,19 @@
12 //"embassy-net/pool-16", 13 //"embassy-net/pool-16",
13 //"time-tick-16mhz", 14 //"time-tick-16mhz",
14 //"defmt-timestamp-uptime", 15 //"defmt-timestamp-uptime",
15 "nightly", 16 //"nightly",
16 //"unstable-traits", 17 //"unstable-traits",
17 ], 18 ],
18 "rust-analyzer.linkedProjects": [ 19 "rust-analyzer.linkedProjects": [
19 // Declare for the target you wish to develop 20 // Declare for the target you wish to develop
20 //"embassy-executor/Cargo.toml", 21 //"embassy-executor/Cargo.toml",
21 //"embassy-sync/Cargo.toml", 22 //"embassy-sync/Cargo.toml",
22 "examples/nrf/Cargo.toml", 23 //"examples/nrf/Cargo.toml",
23 // "examples/nrf-rtos-trace/Cargo.toml", 24 // "examples/nrf-rtos-trace/Cargo.toml",
24 // "examples/rp/Cargo.toml", 25 // "examples/rp/Cargo.toml",
25 // "examples/std/Cargo.toml", 26 // "examples/std/Cargo.toml",
26 // "examples/stm32f0/Cargo.toml", 27 // "examples/stm32f0/Cargo.toml",
27 // "examples/stm32f1/Cargo.toml", 28 //"examples/stm32f1/Cargo.toml",
28 // "examples/stm32f2/Cargo.toml", 29 // "examples/stm32f2/Cargo.toml",
29 // "examples/stm32f3/Cargo.toml", 30 // "examples/stm32f3/Cargo.toml",
30 // "examples/stm32f4/Cargo.toml", 31 // "examples/stm32f4/Cargo.toml",
@@ -35,7 +36,7 @@
35 // "examples/stm32l0/Cargo.toml", 36 // "examples/stm32l0/Cargo.toml",
36 // "examples/stm32l1/Cargo.toml", 37 // "examples/stm32l1/Cargo.toml",
37 // "examples/stm32l4/Cargo.toml", 38 // "examples/stm32l4/Cargo.toml",
38 // "examples/stm32l5/Cargo.toml", 39 "examples/stm32l5/Cargo.toml",
39 // "examples/stm32u5/Cargo.toml", 40 // "examples/stm32u5/Cargo.toml",
40 // "examples/stm32wb/Cargo.toml", 41 // "examples/stm32wb/Cargo.toml",
41 // "examples/stm32wb55/Cargo.toml", 42 // "examples/stm32wb55/Cargo.toml",
diff --git a/embassy-executor/src/arch/riscv32.rs b/embassy-executor/src/arch/riscv32.rs
index 2a4b006da..e97a56cda 100644
--- a/embassy-executor/src/arch/riscv32.rs
+++ b/embassy-executor/src/arch/riscv32.rs
@@ -1,7 +1,6 @@
1use core::marker::PhantomData; 1use core::marker::PhantomData;
2use core::ptr; 2use core::ptr;
3 3use core::sync::atomic::{AtomicBool, Ordering};
4use atomic_polyfill::{AtomicBool, Ordering};
5 4
6use super::{raw, Spawner}; 5use super::{raw, Spawner};
7 6
diff --git a/embassy-executor/src/arch/xtensa.rs b/embassy-executor/src/arch/xtensa.rs
index f908aaa70..4ee0d9f78 100644
--- a/embassy-executor/src/arch/xtensa.rs
+++ b/embassy-executor/src/arch/xtensa.rs
@@ -1,7 +1,6 @@
1use core::marker::PhantomData; 1use core::marker::PhantomData;
2use core::ptr; 2use core::ptr;
3 3use core::sync::atomic::{AtomicBool, Ordering};
4use atomic_polyfill::{AtomicBool, Ordering};
5 4
6use super::{raw, Spawner}; 5use super::{raw, Spawner};
7 6
diff --git a/embassy-net/Cargo.toml b/embassy-net/Cargo.toml
index ac338843d..2d853762e 100644
--- a/embassy-net/Cargo.toml
+++ b/embassy-net/Cargo.toml
@@ -51,7 +51,6 @@ generic-array = { version = "0.14.4", default-features = false }
51stable_deref_trait = { version = "1.2.0", default-features = false } 51stable_deref_trait = { version = "1.2.0", default-features = false }
52futures = { version = "0.3.17", default-features = false, features = [ "async-await" ] } 52futures = { version = "0.3.17", default-features = false, features = [ "async-await" ] }
53atomic-pool = "1.0" 53atomic-pool = "1.0"
54atomic-polyfill = "1.0.1"
55embedded-nal-async = { version = "0.3.0", optional = true } 54embedded-nal-async = { version = "0.3.0", optional = true }
56 55
57[dependencies.smoltcp] 56[dependencies.smoltcp]
diff --git a/embassy-net/src/tcp.rs b/embassy-net/src/tcp.rs
index 0dc8da73a..55cbda455 100644
--- a/embassy-net/src/tcp.rs
+++ b/embassy-net/src/tcp.rs
@@ -329,8 +329,8 @@ pub mod client {
329 use core::cell::UnsafeCell; 329 use core::cell::UnsafeCell;
330 use core::mem::MaybeUninit; 330 use core::mem::MaybeUninit;
331 use core::ptr::NonNull; 331 use core::ptr::NonNull;
332 use core::sync::atomic::{AtomicBool, Ordering};
332 333
333 use atomic_polyfill::{AtomicBool, Ordering};
334 use embedded_nal_async::IpAddr; 334 use embedded_nal_async::IpAddr;
335 335
336 use super::*; 336 use super::*;
diff --git a/embassy-rp/src/multicore.rs b/embassy-rp/src/multicore.rs
index 8290c62a7..e51fc218a 100644
--- a/embassy-rp/src/multicore.rs
+++ b/embassy-rp/src/multicore.rs
@@ -29,9 +29,7 @@
29//! ``` 29//! ```
30 30
31use core::mem::ManuallyDrop; 31use core::mem::ManuallyDrop;
32use core::sync::atomic::{compiler_fence, Ordering}; 32use core::sync::atomic::{compiler_fence, AtomicBool, Ordering};
33
34use atomic_polyfill::AtomicBool;
35 33
36use crate::interrupt::{Interrupt, InterruptExt}; 34use crate::interrupt::{Interrupt, InterruptExt};
37use crate::peripherals::CORE1; 35use crate::peripherals::CORE1;
diff --git a/embassy-rp/src/usb.rs b/embassy-rp/src/usb.rs
index dfc2e9da6..8361736a9 100644
--- a/embassy-rp/src/usb.rs
+++ b/embassy-rp/src/usb.rs
@@ -1,10 +1,9 @@
1use core::future::poll_fn; 1use core::future::poll_fn;
2use core::marker::PhantomData; 2use core::marker::PhantomData;
3use core::slice; 3use core::slice;
4use core::sync::atomic::Ordering; 4use core::sync::atomic::{compiler_fence, Ordering};
5use core::task::Poll; 5use core::task::Poll;
6 6
7use atomic_polyfill::compiler_fence;
8use embassy_hal_common::into_ref; 7use embassy_hal_common::into_ref;
9use embassy_sync::waitqueue::AtomicWaker; 8use embassy_sync::waitqueue::AtomicWaker;
10use embassy_usb_driver as driver; 9use embassy_usb_driver as driver;
diff --git a/embassy-stm32/src/adc/v4.rs b/embassy-stm32/src/adc/v4.rs
index f5aa0e63d..4707b7c95 100644
--- a/embassy-stm32/src/adc/v4.rs
+++ b/embassy-stm32/src/adc/v4.rs
@@ -1,4 +1,5 @@
1use atomic_polyfill::{AtomicU8, Ordering}; 1use core::sync::atomic::{AtomicU8, Ordering};
2
2use embedded_hal_02::blocking::delay::DelayUs; 3use embedded_hal_02::blocking::delay::DelayUs;
3use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; 4use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel};
4use pac::adccommon::vals::Presc; 5use pac::adccommon::vals::Presc;
diff --git a/embassy-stm32/src/flash/f4.rs b/embassy-stm32/src/flash/f4.rs
index b8327ce4e..9e23a8adf 100644
--- a/embassy-stm32/src/flash/f4.rs
+++ b/embassy-stm32/src/flash/f4.rs
@@ -1,7 +1,6 @@
1use core::convert::TryInto; 1use core::convert::TryInto;
2use core::ptr::write_volatile; 2use core::ptr::write_volatile;
3 3use core::sync::atomic::{fence, Ordering};
4use atomic_polyfill::{fence, Ordering};
5 4
6use super::{ERASE_SIZE, FLASH_BASE, FLASH_SIZE}; 5use super::{ERASE_SIZE, FLASH_BASE, FLASH_SIZE};
7use crate::flash::Error; 6use crate::flash::Error;
diff --git a/embassy-stm32/src/flash/f7.rs b/embassy-stm32/src/flash/f7.rs
index 6d47b78a0..dd0d8439d 100644
--- a/embassy-stm32/src/flash/f7.rs
+++ b/embassy-stm32/src/flash/f7.rs
@@ -1,7 +1,6 @@
1use core::convert::TryInto; 1use core::convert::TryInto;
2use core::ptr::write_volatile; 2use core::ptr::write_volatile;
3 3use core::sync::atomic::{fence, Ordering};
4use atomic_polyfill::{fence, Ordering};
5 4
6use crate::flash::Error; 5use crate::flash::Error;
7use crate::pac; 6use crate::pac;
diff --git a/embassy-stm32/src/flash/h7.rs b/embassy-stm32/src/flash/h7.rs
index 3178b3be9..7de95ac11 100644
--- a/embassy-stm32/src/flash/h7.rs
+++ b/embassy-stm32/src/flash/h7.rs
@@ -41,7 +41,7 @@ pub(crate) unsafe fn blocking_write(offset: u32, buf: &[u8]) -> Result<(), Error
41 41
42 cortex_m::asm::isb(); 42 cortex_m::asm::isb();
43 cortex_m::asm::dsb(); 43 cortex_m::asm::dsb();
44 atomic_polyfill::fence(atomic_polyfill::Ordering::SeqCst); 44 core::sync::atomic::fence(core::sync::atomic::Ordering::SeqCst);
45 45
46 let ret = { 46 let ret = {
47 let mut ret: Result<(), Error> = Ok(()); 47 let mut ret: Result<(), Error> = Ok(());
@@ -70,7 +70,7 @@ pub(crate) unsafe fn blocking_write(offset: u32, buf: &[u8]) -> Result<(), Error
70 70
71 cortex_m::asm::isb(); 71 cortex_m::asm::isb();
72 cortex_m::asm::dsb(); 72 cortex_m::asm::dsb();
73 atomic_polyfill::fence(atomic_polyfill::Ordering::SeqCst); 73 core::sync::atomic::fence(core::sync::atomic::Ordering::SeqCst);
74 74
75 ret 75 ret
76} 76}
diff --git a/embassy-stm32/src/i2c/v2.rs b/embassy-stm32/src/i2c/v2.rs
index 47dc7d2a4..4622635bf 100644
--- a/embassy-stm32/src/i2c/v2.rs
+++ b/embassy-stm32/src/i2c/v2.rs
@@ -1,8 +1,8 @@
1use core::cmp; 1use core::cmp;
2use core::future::poll_fn; 2use core::future::poll_fn;
3use core::sync::atomic::{AtomicUsize, Ordering};
3use core::task::Poll; 4use core::task::Poll;
4 5
5use atomic_polyfill::{AtomicUsize, Ordering};
6use embassy_embedded_hal::SetConfig; 6use embassy_embedded_hal::SetConfig;
7use embassy_hal_common::drop::OnDrop; 7use embassy_hal_common::drop::OnDrop;
8use embassy_hal_common::{into_ref, PeripheralRef}; 8use embassy_hal_common::{into_ref, PeripheralRef};
@@ -131,7 +131,8 @@ impl<'d, T: Instance, TXDMA, RXDMA> I2c<'d, T, TXDMA, RXDMA> {
131 131
132 if isr.tcr() || isr.tc() { 132 if isr.tcr() || isr.tc() {
133 let state = T::state(); 133 let state = T::state();
134 state.chunks_transferred.fetch_add(1, Ordering::Relaxed); 134 let transferred = state.chunks_transferred.load(Ordering::Relaxed);
135 state.chunks_transferred.store(transferred + 1, Ordering::Relaxed);
135 state.waker.wake(); 136 state.waker.wake();
136 } 137 }
137 // The flag can only be cleared by writting to nbytes, we won't do that here, so disable 138 // The flag can only be cleared by writting to nbytes, we won't do that here, so disable
diff --git a/embassy-stm32/src/usart/buffered.rs b/embassy-stm32/src/usart/buffered.rs
index 874af1d73..a27fcc1ca 100644
--- a/embassy-stm32/src/usart/buffered.rs
+++ b/embassy-stm32/src/usart/buffered.rs
@@ -1,8 +1,8 @@
1use core::cell::RefCell; 1use core::cell::RefCell;
2use core::future::poll_fn; 2use core::future::poll_fn;
3use core::sync::atomic::{compiler_fence, Ordering};
3use core::task::Poll; 4use core::task::Poll;
4 5
5use atomic_polyfill::{compiler_fence, Ordering};
6use embassy_cortex_m::peripheral::{PeripheralMutex, PeripheralState, StateStorage}; 6use embassy_cortex_m::peripheral::{PeripheralMutex, PeripheralState, StateStorage};
7use embassy_hal_common::ring_buffer::RingBuffer; 7use embassy_hal_common::ring_buffer::RingBuffer;
8use embassy_sync::waitqueue::WakerRegistration; 8use embassy_sync::waitqueue::WakerRegistration;
diff --git a/embassy-stm32/src/usart/mod.rs b/embassy-stm32/src/usart/mod.rs
index ea75361fa..6f8b6a9e8 100644
--- a/embassy-stm32/src/usart/mod.rs
+++ b/embassy-stm32/src/usart/mod.rs
@@ -2,9 +2,9 @@
2 2
3use core::future::poll_fn; 3use core::future::poll_fn;
4use core::marker::PhantomData; 4use core::marker::PhantomData;
5use core::sync::atomic::{compiler_fence, Ordering};
5use core::task::Poll; 6use core::task::Poll;
6 7
7use atomic_polyfill::{compiler_fence, Ordering};
8use embassy_cortex_m::interrupt::InterruptExt; 8use embassy_cortex_m::interrupt::InterruptExt;
9use embassy_futures::select::{select, Either}; 9use embassy_futures::select::{select, Either};
10use embassy_hal_common::drop::OnDrop; 10use embassy_hal_common::drop::OnDrop;
diff --git a/embassy-sync/Cargo.toml b/embassy-sync/Cargo.toml
index 1eeb94c9a..7b5d3ce48 100644
--- a/embassy-sync/Cargo.toml
+++ b/embassy-sync/Cargo.toml
@@ -31,7 +31,6 @@ defmt = { version = "0.3", optional = true }
31log = { version = "0.4.14", optional = true } 31log = { version = "0.4.14", optional = true }
32 32
33futures-util = { version = "0.3.17", default-features = false } 33futures-util = { version = "0.3.17", default-features = false }
34atomic-polyfill = "1.0.1"
35critical-section = "1.1" 34critical-section = "1.1"
36heapless = "0.7.5" 35heapless = "0.7.5"
37cfg-if = "1.0.0" 36cfg-if = "1.0.0"