diff options
| author | Dario Nieuwenhuis <[email protected]> | 2022-12-23 20:46:49 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2022-12-23 20:46:49 +0100 |
| commit | 10c9cc31b14a356e58833fd6c81456251ab3fce9 (patch) | |
| tree | 06d49a2a966cd71ca6b1706335285a3df6256d81 | |
| parent | cd9a65ba3969460cd7ecb9200f12a828c26205aa (diff) | |
Remove unnecessary use of atomic-polyfill.
Only use it when CAS is actually needed.
| -rw-r--r-- | .vscode/settings.json | 11 | ||||
| -rw-r--r-- | embassy-executor/src/arch/riscv32.rs | 3 | ||||
| -rw-r--r-- | embassy-executor/src/arch/xtensa.rs | 3 | ||||
| -rw-r--r-- | embassy-net/Cargo.toml | 1 | ||||
| -rw-r--r-- | embassy-net/src/tcp.rs | 2 | ||||
| -rw-r--r-- | embassy-rp/src/multicore.rs | 4 | ||||
| -rw-r--r-- | embassy-rp/src/usb.rs | 3 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v4.rs | 3 | ||||
| -rw-r--r-- | embassy-stm32/src/flash/f4.rs | 3 | ||||
| -rw-r--r-- | embassy-stm32/src/flash/f7.rs | 3 | ||||
| -rw-r--r-- | embassy-stm32/src/flash/h7.rs | 4 | ||||
| -rw-r--r-- | embassy-stm32/src/i2c/v2.rs | 5 | ||||
| -rw-r--r-- | embassy-stm32/src/usart/buffered.rs | 2 | ||||
| -rw-r--r-- | embassy-stm32/src/usart/mod.rs | 2 | ||||
| -rw-r--r-- | embassy-sync/Cargo.toml | 1 |
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 @@ | |||
| 1 | use core::marker::PhantomData; | 1 | use core::marker::PhantomData; |
| 2 | use core::ptr; | 2 | use core::ptr; |
| 3 | 3 | use core::sync::atomic::{AtomicBool, Ordering}; | |
| 4 | use atomic_polyfill::{AtomicBool, Ordering}; | ||
| 5 | 4 | ||
| 6 | use super::{raw, Spawner}; | 5 | use 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 @@ | |||
| 1 | use core::marker::PhantomData; | 1 | use core::marker::PhantomData; |
| 2 | use core::ptr; | 2 | use core::ptr; |
| 3 | 3 | use core::sync::atomic::{AtomicBool, Ordering}; | |
| 4 | use atomic_polyfill::{AtomicBool, Ordering}; | ||
| 5 | 4 | ||
| 6 | use super::{raw, Spawner}; | 5 | use 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 } | |||
| 51 | stable_deref_trait = { version = "1.2.0", default-features = false } | 51 | stable_deref_trait = { version = "1.2.0", default-features = false } |
| 52 | futures = { version = "0.3.17", default-features = false, features = [ "async-await" ] } | 52 | futures = { version = "0.3.17", default-features = false, features = [ "async-await" ] } |
| 53 | atomic-pool = "1.0" | 53 | atomic-pool = "1.0" |
| 54 | atomic-polyfill = "1.0.1" | ||
| 55 | embedded-nal-async = { version = "0.3.0", optional = true } | 54 | embedded-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 | ||
| 31 | use core::mem::ManuallyDrop; | 31 | use core::mem::ManuallyDrop; |
| 32 | use core::sync::atomic::{compiler_fence, Ordering}; | 32 | use core::sync::atomic::{compiler_fence, AtomicBool, Ordering}; |
| 33 | |||
| 34 | use atomic_polyfill::AtomicBool; | ||
| 35 | 33 | ||
| 36 | use crate::interrupt::{Interrupt, InterruptExt}; | 34 | use crate::interrupt::{Interrupt, InterruptExt}; |
| 37 | use crate::peripherals::CORE1; | 35 | use 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 @@ | |||
| 1 | use core::future::poll_fn; | 1 | use core::future::poll_fn; |
| 2 | use core::marker::PhantomData; | 2 | use core::marker::PhantomData; |
| 3 | use core::slice; | 3 | use core::slice; |
| 4 | use core::sync::atomic::Ordering; | 4 | use core::sync::atomic::{compiler_fence, Ordering}; |
| 5 | use core::task::Poll; | 5 | use core::task::Poll; |
| 6 | 6 | ||
| 7 | use atomic_polyfill::compiler_fence; | ||
| 8 | use embassy_hal_common::into_ref; | 7 | use embassy_hal_common::into_ref; |
| 9 | use embassy_sync::waitqueue::AtomicWaker; | 8 | use embassy_sync::waitqueue::AtomicWaker; |
| 10 | use embassy_usb_driver as driver; | 9 | use 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 @@ | |||
| 1 | use atomic_polyfill::{AtomicU8, Ordering}; | 1 | use core::sync::atomic::{AtomicU8, Ordering}; |
| 2 | |||
| 2 | use embedded_hal_02::blocking::delay::DelayUs; | 3 | use embedded_hal_02::blocking::delay::DelayUs; |
| 3 | use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; | 4 | use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; |
| 4 | use pac::adccommon::vals::Presc; | 5 | use 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 @@ | |||
| 1 | use core::convert::TryInto; | 1 | use core::convert::TryInto; |
| 2 | use core::ptr::write_volatile; | 2 | use core::ptr::write_volatile; |
| 3 | 3 | use core::sync::atomic::{fence, Ordering}; | |
| 4 | use atomic_polyfill::{fence, Ordering}; | ||
| 5 | 4 | ||
| 6 | use super::{ERASE_SIZE, FLASH_BASE, FLASH_SIZE}; | 5 | use super::{ERASE_SIZE, FLASH_BASE, FLASH_SIZE}; |
| 7 | use crate::flash::Error; | 6 | use 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 @@ | |||
| 1 | use core::convert::TryInto; | 1 | use core::convert::TryInto; |
| 2 | use core::ptr::write_volatile; | 2 | use core::ptr::write_volatile; |
| 3 | 3 | use core::sync::atomic::{fence, Ordering}; | |
| 4 | use atomic_polyfill::{fence, Ordering}; | ||
| 5 | 4 | ||
| 6 | use crate::flash::Error; | 5 | use crate::flash::Error; |
| 7 | use crate::pac; | 6 | use 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 @@ | |||
| 1 | use core::cmp; | 1 | use core::cmp; |
| 2 | use core::future::poll_fn; | 2 | use core::future::poll_fn; |
| 3 | use core::sync::atomic::{AtomicUsize, Ordering}; | ||
| 3 | use core::task::Poll; | 4 | use core::task::Poll; |
| 4 | 5 | ||
| 5 | use atomic_polyfill::{AtomicUsize, Ordering}; | ||
| 6 | use embassy_embedded_hal::SetConfig; | 6 | use embassy_embedded_hal::SetConfig; |
| 7 | use embassy_hal_common::drop::OnDrop; | 7 | use embassy_hal_common::drop::OnDrop; |
| 8 | use embassy_hal_common::{into_ref, PeripheralRef}; | 8 | use 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 @@ | |||
| 1 | use core::cell::RefCell; | 1 | use core::cell::RefCell; |
| 2 | use core::future::poll_fn; | 2 | use core::future::poll_fn; |
| 3 | use core::sync::atomic::{compiler_fence, Ordering}; | ||
| 3 | use core::task::Poll; | 4 | use core::task::Poll; |
| 4 | 5 | ||
| 5 | use atomic_polyfill::{compiler_fence, Ordering}; | ||
| 6 | use embassy_cortex_m::peripheral::{PeripheralMutex, PeripheralState, StateStorage}; | 6 | use embassy_cortex_m::peripheral::{PeripheralMutex, PeripheralState, StateStorage}; |
| 7 | use embassy_hal_common::ring_buffer::RingBuffer; | 7 | use embassy_hal_common::ring_buffer::RingBuffer; |
| 8 | use embassy_sync::waitqueue::WakerRegistration; | 8 | use 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 | ||
| 3 | use core::future::poll_fn; | 3 | use core::future::poll_fn; |
| 4 | use core::marker::PhantomData; | 4 | use core::marker::PhantomData; |
| 5 | use core::sync::atomic::{compiler_fence, Ordering}; | ||
| 5 | use core::task::Poll; | 6 | use core::task::Poll; |
| 6 | 7 | ||
| 7 | use atomic_polyfill::{compiler_fence, Ordering}; | ||
| 8 | use embassy_cortex_m::interrupt::InterruptExt; | 8 | use embassy_cortex_m::interrupt::InterruptExt; |
| 9 | use embassy_futures::select::{select, Either}; | 9 | use embassy_futures::select::{select, Either}; |
| 10 | use embassy_hal_common::drop::OnDrop; | 10 | use 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 } | |||
| 31 | log = { version = "0.4.14", optional = true } | 31 | log = { version = "0.4.14", optional = true } |
| 32 | 32 | ||
| 33 | futures-util = { version = "0.3.17", default-features = false } | 33 | futures-util = { version = "0.3.17", default-features = false } |
| 34 | atomic-polyfill = "1.0.1" | ||
| 35 | critical-section = "1.1" | 34 | critical-section = "1.1" |
| 36 | heapless = "0.7.5" | 35 | heapless = "0.7.5" |
| 37 | cfg-if = "1.0.0" | 36 | cfg-if = "1.0.0" |
