From 6ba2ca995478040f97d8214930b647684e35ad01 Mon Sep 17 00:00:00 2001 From: Shaibal Ghosh Date: Thu, 6 Mar 2025 16:38:38 +0530 Subject: [PATCH] Fixed review comment --- .../src/bin/flexspi-storage-service.rs | 39 +++++-------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/examples/rt685s-evk/src/bin/flexspi-storage-service.rs b/examples/rt685s-evk/src/bin/flexspi-storage-service.rs index 1c4abebf..34d34fc2 100644 --- a/examples/rt685s-evk/src/bin/flexspi-storage-service.rs +++ b/examples/rt685s-evk/src/bin/flexspi-storage-service.rs @@ -7,45 +7,26 @@ use embassy_imxrt::flexspi_nor_storage_bus::{ FlexspiAhbWriteWaitUnit, FlexspiConfig, FlexspiCsIntervalCycleUnit, FlexspiDeviceConfig, FlexspiNorStorageBus, FlexspiReadSampleClock, }; -use embassy_imxrt::spi_nor_storage_bus::SpiNorStorageBus; use embassy_imxrt::storage::{ - BlockingNorStorageDriver, ConfigureCmdSeq, NorStorageCmd, NorStorageCmdMode, NorStorageCmdSeq, NorStorageCmdType, + BlockingNorStorageDriver, NorStorageCmd, NorStorageCmdMode, NorStorageCmdSeq, NorStorageCmdType, }; use embassy_time::Timer; -use embedded_storage::nor_flash::{NorFlash as BlockingNorFlash, ReadNorFlash as BlockingReadNorFlash}; use {defmt_rtt as _, panic_probe as _}; static ADDR: u32 = 0x2F000; -struct MacronixDeviceDriver { +struct MacronixDeviceDriver { // Bus driver dependency - spi_nor_storage_bus: Option>, - flexspi_nor_storage_bus: Option>, + storagebusdriver: T, } -impl MacronixDeviceDriver { - pub fn new( - spidriver: Option>, - flexspidriver: Option>, - ) -> Result { - if let Some(spi) = spidriver { - return Ok(MacronixDeviceDriver { - spi_nor_storage_bus: Some(spi), - flexspi_nor_storage_bus: None, - }); - }; - if let Some(flexspi) = flexspidriver { - return Ok(MacronixDeviceDriver { - spi_nor_storage_bus: None, - flexspi_nor_storage_bus: Some(flexspi), - }); - } - - Err(()) +impl MacronixDeviceDriver { + pub fn new(storagebusdriver: T) -> Result { + Ok(Self { storagebusdriver }) } pub fn init(&self) { - let bus_ref = self.flexspi_nor_storage_bus.as_ref().unwrap(); + let bus_ref = &self.storagebusdriver; let cmdarr = NorStorageCmdSeq { fast_read: Some(NorStorageCmd { cmd_lb: 0xEE, @@ -112,13 +93,13 @@ impl MacronixDeviceDriver { } pub fn read(&mut self, addr: u32, data: &mut [u8]) { - let bus_ref = self.flexspi_nor_storage_bus.as_mut().unwrap(); + let bus_ref = &mut self.storagebusdriver; // Read data from the storage device bus_ref.read(addr as u32, data); } pub fn write(&mut self, addr: u32, data: &[u8]) { - let bus_ref = self.flexspi_nor_storage_bus.as_mut().unwrap(); + let bus_ref = &mut self.storagebusdriver; // Write data to the storage device bus_ref.write_enable(); @@ -227,7 +208,7 @@ async fn main(_spawner: Spawner) { .configure_flexspi_device(&flash_config, &flexspi_config); // Configure the Flash device specific parameters like CS time, etc // Instanctiate the storage device driver and inject the bus driver dependency - let mut device_driver = MacronixDeviceDriver::new(None, Some(flexspi_storage)).unwrap(); + let mut device_driver = MacronixDeviceDriver::new(flexspi_storage).unwrap(); device_driver.init(); // write data