blob: 373012580021de00f908a4089866638c44d5bb75 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#![no_main]
#![no_std]
use defmt_rtt as _;
use imxrt1040evk::{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 w25q64 = Algorithm::initialize();
let mut sector = [0_u8; Algorithm::sector_size_bytes()];
w25q64.flash_read(0, &mut sector[..4]);
let tag = u32::from_le_bytes(sector[..4].try_into().unwrap());
defmt::assert!(0x42464346 == tag, "{=u32:#010X}", tag);
w25q64.flash_erase_sector(LAST_SECTOR + 256);
sector.fill(0);
w25q64.flash_write(LAST_SECTOR, §or);
sector.fill(u8::MAX);
w25q64.flash_read(LAST_SECTOR, &mut sector);
defmt::assert!(sector.iter().all(|byte| *byte == 0));
w25q64.flash_erase_sector(LAST_SECTOR + 123);
w25q64.flash_read(LAST_SECTOR, &mut sector);
defmt::assert!(sector.iter().all(|byte| *byte == u8::MAX));
}
defmt::println!("Pass");
loop {}
}
|