remove embedded-sdmmc
Remove support for embedded-sdmmc due to lack of maintainership. Bring it back once the upstream includes the async functionality.
This commit is contained in:
@ -1538,53 +1538,3 @@ foreach_peripheral!(
|
||||
impl Instance for peripherals::$inst {}
|
||||
};
|
||||
);
|
||||
|
||||
#[cfg(feature = "embedded-sdmmc")]
|
||||
mod sdmmc_rs {
|
||||
use embedded_sdmmc::{Block, BlockCount, BlockDevice, BlockIdx};
|
||||
|
||||
use super::*;
|
||||
|
||||
impl<'d, T: Instance, Dma: SdmmcDma<T>> BlockDevice for Sdmmc<'d, T, Dma> {
|
||||
type Error = Error;
|
||||
|
||||
async fn read(
|
||||
&mut self,
|
||||
blocks: &mut [Block],
|
||||
start_block_idx: BlockIdx,
|
||||
_reason: &str,
|
||||
) -> Result<(), Self::Error> {
|
||||
let mut address = start_block_idx.0;
|
||||
|
||||
for block in blocks.iter_mut() {
|
||||
let block: &mut [u8; 512] = &mut block.contents;
|
||||
|
||||
// NOTE(unsafe) Block uses align(4)
|
||||
let block = unsafe { &mut *(block as *mut _ as *mut DataBlock) };
|
||||
self.read_block(address, block).await?;
|
||||
address += 1;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn write(&mut self, blocks: &[Block], start_block_idx: BlockIdx) -> Result<(), Self::Error> {
|
||||
let mut address = start_block_idx.0;
|
||||
|
||||
for block in blocks.iter() {
|
||||
let block: &[u8; 512] = &block.contents;
|
||||
|
||||
// NOTE(unsafe) DataBlock uses align 4
|
||||
let block = unsafe { &*(block as *const _ as *const DataBlock) };
|
||||
self.write_block(address, block).await?;
|
||||
address += 1;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn num_blocks(&self) -> Result<BlockCount, Self::Error> {
|
||||
let card = self.card()?;
|
||||
let count = card.csd.block_count();
|
||||
Ok(BlockCount(count))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user