aboutsummaryrefslogtreecommitdiff
path: root/embassy-embedded-hal/src/flash
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-embedded-hal/src/flash')
-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
3 files changed, 26 insertions, 4 deletions
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;