Merge pull request #4473 from diondokter/multi-write-flash-adapters

Multi write flash adapters
This commit is contained in:
Ulf Lilleengen 2025-07-28 09:00:55 +00:00 committed by GitHub
commit 8f64a14beb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 31 additions and 4 deletions

View File

@ -147,6 +147,11 @@ impl<T: embedded_storage_async::nor_flash::NorFlash> embedded_storage_async::nor
}
}
impl<T: embedded_storage_async::nor_flash::MultiwriteNorFlash> embedded_storage_async::nor_flash::MultiwriteNorFlash
for YieldingAsync<T>
{
}
#[cfg(test)]
mod tests {
use embedded_storage_async::nor_flash::NorFlash;

View File

@ -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<First, Second, E> MultiwriteNorFlash for ConcatFlash<First, Second>
where
First: MultiwriteNorFlash<Error = E>,
Second: MultiwriteNorFlash<Error = E>,
E: NorFlashError,
{
}
impl<First, Second, E> AsyncReadNorFlash for ConcatFlash<First, Second>
where
First: AsyncReadNorFlash<Error = E>,
@ -185,6 +195,14 @@ where
}
}
impl<First, Second, E> AsyncMultiwriteNorFlash for ConcatFlash<First, Second>
where
First: AsyncMultiwriteNorFlash<Error = E>,
Second: AsyncMultiwriteNorFlash<Error = E>,
E: NorFlashError,
{
}
#[cfg(test)]
mod tests {
use embedded_storage::nor_flash::{NorFlash, ReadNorFlash};

View File

@ -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<M: RawMutex, T: NorFlash> NorFlash for Partition<'_, M, T> {
}
}
impl<M: RawMutex, T: MultiwriteNorFlash> MultiwriteNorFlash for Partition<'_, M, T> {}
#[cfg(test)]
mod tests {
use embassy_sync::blocking_mutex::raw::NoopRawMutex;

View File

@ -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<M: RawMutex, T: NorFlash> NorFlash for BlockingPartition<'_, M, T> {
}
}
impl<M: RawMutex, T: MultiwriteNorFlash> MultiwriteNorFlash for BlockingPartition<'_, M, T> {}
#[cfg(test)]
mod tests {
use embassy_sync::blocking_mutex::raw::NoopRawMutex;