diff --git a/embassy-embedded-hal/src/adapter/yielding_async.rs b/embassy-embedded-hal/src/adapter/yielding_async.rs index fe9c9c341..87f822a63 100644 --- a/embassy-embedded-hal/src/adapter/yielding_async.rs +++ b/embassy-embedded-hal/src/adapter/yielding_async.rs @@ -147,6 +147,11 @@ impl embedded_storage_async::nor } } +impl embedded_storage_async::nor_flash::MultiwriteNorFlash + for YieldingAsync +{ +} + #[cfg(test)] mod tests { use embedded_storage_async::nor_flash::NorFlash; diff --git a/embassy-embedded-hal/src/flash/concat_flash.rs b/embassy-embedded-hal/src/flash/concat_flash.rs index 499941d19..fe5a18ce2 100644 --- a/embassy-embedded-hal/src/flash/concat_flash.rs +++ b/embassy-embedded-hal/src/flash/concat_flash.rs @@ -1,5 +1,7 @@ -use embedded_storage::nor_flash::{ErrorType, NorFlash, NorFlashError, ReadNorFlash}; -use embedded_storage_async::nor_flash::{NorFlash as AsyncNorFlash, ReadNorFlash as AsyncReadNorFlash}; +use embedded_storage::nor_flash::{ErrorType, MultiwriteNorFlash, NorFlash, NorFlashError, ReadNorFlash}; +use embedded_storage_async::nor_flash::{ + MultiwriteNorFlash as AsyncMultiwriteNorFlash, NorFlash as AsyncNorFlash, ReadNorFlash as AsyncReadNorFlash, +}; /// Convenience helper for concatenating two consecutive flashes into one. /// This is especially useful if used with "flash regions", where one may @@ -116,6 +118,14 @@ where } } +impl MultiwriteNorFlash for ConcatFlash +where + First: MultiwriteNorFlash, + Second: MultiwriteNorFlash, + E: NorFlashError, +{ +} + impl AsyncReadNorFlash for ConcatFlash where First: AsyncReadNorFlash, @@ -185,6 +195,14 @@ where } } +impl AsyncMultiwriteNorFlash for ConcatFlash +where + First: AsyncMultiwriteNorFlash, + Second: AsyncMultiwriteNorFlash, + E: NorFlashError, +{ +} + #[cfg(test)] mod tests { use embedded_storage::nor_flash::{NorFlash, ReadNorFlash}; diff --git a/embassy-embedded-hal/src/flash/partition/asynch.rs b/embassy-embedded-hal/src/flash/partition/asynch.rs index 1b0c91232..82e27bb7c 100644 --- a/embassy-embedded-hal/src/flash/partition/asynch.rs +++ b/embassy-embedded-hal/src/flash/partition/asynch.rs @@ -1,7 +1,7 @@ use embassy_sync::blocking_mutex::raw::RawMutex; use embassy_sync::mutex::Mutex; use embedded_storage::nor_flash::ErrorType; -use embedded_storage_async::nor_flash::{NorFlash, ReadNorFlash}; +use embedded_storage_async::nor_flash::{MultiwriteNorFlash, NorFlash, ReadNorFlash}; use super::Error; @@ -99,6 +99,8 @@ impl NorFlash for Partition<'_, M, T> { } } +impl MultiwriteNorFlash for Partition<'_, M, T> {} + #[cfg(test)] mod tests { use embassy_sync::blocking_mutex::raw::NoopRawMutex; diff --git a/embassy-embedded-hal/src/flash/partition/blocking.rs b/embassy-embedded-hal/src/flash/partition/blocking.rs index a68df7812..951998166 100644 --- a/embassy-embedded-hal/src/flash/partition/blocking.rs +++ b/embassy-embedded-hal/src/flash/partition/blocking.rs @@ -2,7 +2,7 @@ use core::cell::RefCell; use embassy_sync::blocking_mutex::raw::RawMutex; use embassy_sync::blocking_mutex::Mutex; -use embedded_storage::nor_flash::{ErrorType, NorFlash, ReadNorFlash}; +use embedded_storage::nor_flash::{ErrorType, MultiwriteNorFlash, NorFlash, ReadNorFlash}; use super::Error; @@ -109,6 +109,8 @@ impl NorFlash for BlockingPartition<'_, M, T> { } } +impl MultiwriteNorFlash for BlockingPartition<'_, M, T> {} + #[cfg(test)] mod tests { use embassy_sync::blocking_mutex::raw::NoopRawMutex;