aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Lilleengen <[email protected]>2025-07-28 09:00:55 +0000
committerGitHub <[email protected]>2025-07-28 09:00:55 +0000
commit8f64a14bebe711962af0136a5acd2b3cef509402 (patch)
tree1f2b3a03ce4ccf2aa03e4e7bae5eab0a3352278d
parentc3f1b54237e1091b579b62625d5a8afae547d394 (diff)
parent6fe79869e11f1dfb378da25dd11ae1d87cb922d1 (diff)
Merge pull request #4473 from diondokter/multi-write-flash-adapters
Multi write flash adapters
-rw-r--r--embassy-embedded-hal/src/adapter/yielding_async.rs5
-rw-r--r--embassy-embedded-hal/src/flash/concat_flash.rs22
-rw-r--r--embassy-embedded-hal/src/flash/partition/asynch.rs4
-rw-r--r--embassy-embedded-hal/src/flash/partition/blocking.rs4
4 files changed, 31 insertions, 4 deletions
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<T: embedded_storage_async::nor_flash::NorFlash> embedded_storage_async::nor
147 } 147 }
148} 148}
149 149
150impl<T: embedded_storage_async::nor_flash::MultiwriteNorFlash> embedded_storage_async::nor_flash::MultiwriteNorFlash
151 for YieldingAsync<T>
152{
153}
154
150#[cfg(test)] 155#[cfg(test)]
151mod tests { 156mod tests {
152 use embedded_storage_async::nor_flash::NorFlash; 157 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 @@
1use embedded_storage::nor_flash::{ErrorType, NorFlash, NorFlashError, ReadNorFlash}; 1use embedded_storage::nor_flash::{ErrorType, MultiwriteNorFlash, NorFlash, NorFlashError, ReadNorFlash};
2use embedded_storage_async::nor_flash::{NorFlash as AsyncNorFlash, ReadNorFlash as AsyncReadNorFlash}; 2use embedded_storage_async::nor_flash::{
3 MultiwriteNorFlash as AsyncMultiwriteNorFlash, NorFlash as AsyncNorFlash, ReadNorFlash as AsyncReadNorFlash,
4};
3 5
4/// Convenience helper for concatenating two consecutive flashes into one. 6/// Convenience helper for concatenating two consecutive flashes into one.
5/// This is especially useful if used with "flash regions", where one may 7/// This is especially useful if used with "flash regions", where one may
@@ -116,6 +118,14 @@ where
116 } 118 }
117} 119}
118 120
121impl<First, Second, E> MultiwriteNorFlash for ConcatFlash<First, Second>
122where
123 First: MultiwriteNorFlash<Error = E>,
124 Second: MultiwriteNorFlash<Error = E>,
125 E: NorFlashError,
126{
127}
128
119impl<First, Second, E> AsyncReadNorFlash for ConcatFlash<First, Second> 129impl<First, Second, E> AsyncReadNorFlash for ConcatFlash<First, Second>
120where 130where
121 First: AsyncReadNorFlash<Error = E>, 131 First: AsyncReadNorFlash<Error = E>,
@@ -185,6 +195,14 @@ where
185 } 195 }
186} 196}
187 197
198impl<First, Second, E> AsyncMultiwriteNorFlash for ConcatFlash<First, Second>
199where
200 First: AsyncMultiwriteNorFlash<Error = E>,
201 Second: AsyncMultiwriteNorFlash<Error = E>,
202 E: NorFlashError,
203{
204}
205
188#[cfg(test)] 206#[cfg(test)]
189mod tests { 207mod tests {
190 use embedded_storage::nor_flash::{NorFlash, ReadNorFlash}; 208 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 @@
1use embassy_sync::blocking_mutex::raw::RawMutex; 1use embassy_sync::blocking_mutex::raw::RawMutex;
2use embassy_sync::mutex::Mutex; 2use embassy_sync::mutex::Mutex;
3use embedded_storage::nor_flash::ErrorType; 3use embedded_storage::nor_flash::ErrorType;
4use embedded_storage_async::nor_flash::{NorFlash, ReadNorFlash}; 4use embedded_storage_async::nor_flash::{MultiwriteNorFlash, NorFlash, ReadNorFlash};
5 5
6use super::Error; 6use super::Error;
7 7
@@ -99,6 +99,8 @@ impl<M: RawMutex, T: NorFlash> NorFlash for Partition<'_, M, T> {
99 } 99 }
100} 100}
101 101
102impl<M: RawMutex, T: MultiwriteNorFlash> MultiwriteNorFlash for Partition<'_, M, T> {}
103
102#[cfg(test)] 104#[cfg(test)]
103mod tests { 105mod tests {
104 use embassy_sync::blocking_mutex::raw::NoopRawMutex; 106 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;
2 2
3use embassy_sync::blocking_mutex::raw::RawMutex; 3use embassy_sync::blocking_mutex::raw::RawMutex;
4use embassy_sync::blocking_mutex::Mutex; 4use embassy_sync::blocking_mutex::Mutex;
5use embedded_storage::nor_flash::{ErrorType, NorFlash, ReadNorFlash}; 5use embedded_storage::nor_flash::{ErrorType, MultiwriteNorFlash, NorFlash, ReadNorFlash};
6 6
7use super::Error; 7use super::Error;
8 8
@@ -109,6 +109,8 @@ impl<M: RawMutex, T: NorFlash> NorFlash for BlockingPartition<'_, M, T> {
109 } 109 }
110} 110}
111 111
112impl<M: RawMutex, T: MultiwriteNorFlash> MultiwriteNorFlash for BlockingPartition<'_, M, T> {}
113
112#[cfg(test)] 114#[cfg(test)]
113mod tests { 115mod tests {
114 use embassy_sync::blocking_mutex::raw::NoopRawMutex; 116 use embassy_sync::blocking_mutex::raw::NoopRawMutex;