#![no_main] #![no_std] use defmt_rtt as _; use imxrt1170evk::{self, Algorithm}; use panic_probe as _; const LAST_SECTOR: usize = Algorithm::flash_size_bytes() - Algorithm::sector_size_bytes(); #[imxrt_rt::entry] fn main() -> ! { for _ in 0..5 { let mut is25wp = Algorithm::initialize(); let mut sector = [0_u8; Algorithm::sector_size_bytes()]; is25wp.flash_read(0x400, &mut sector[..4]); if 0x42464346 != u32::from_le_bytes(sector[..4].try_into().unwrap()) { defmt::warn!("No FCB found."); } is25wp.flash_erase_sector(LAST_SECTOR + 256); sector.fill(0); is25wp.flash_write(LAST_SECTOR, §or); sector.fill(u8::MAX); is25wp.flash_read(LAST_SECTOR, &mut sector); defmt::assert!(sector.iter().all(|byte| *byte == 0)); is25wp.flash_erase_sector(LAST_SECTOR + 123); is25wp.flash_read(LAST_SECTOR, &mut sector); defmt::assert!(sector.iter().all(|byte| *byte == u8::MAX)); } defmt::println!("Pass"); loop {} }