#![no_main]
#![no_std]
use cortex_m_rt::entry;
use critical_section::with;
use hal::{
clocks::Clocks,
flash::{Bank, Flash},
low_power,
};
const FLASH_PAGE: usize = 254;
#[entry]
fn main() -> ! {
let mut cp = cortex_m::Peripherals::take().unwrap();
let mut dp = pac::Peripherals::take().unwrap();
let clock_cfg = Clocks::Default();
clock_cfg.setup().unwrap();
let mut flash = Flash::new(dp.FLASH);
flash.erase_page(Bank::B1, FLASH_PAGE).ok();
flash.write_page(Bank::B1, FLASH_PAGE, &[1, 2, 3, 4]);
flash.erase_write_page(Bank::B1, FLASH_PAGE, &[1, 2, 3, 4]);
let mut read_buf = [u8; 4];
flash.read(Bank::B1, FLASH_PAGE, 0, read_buf);
loop {
low_power::sleep_now();
}
}
#[defmt::panic_handler]
fn panic() -> ! {
cortex_m::asm::udf()
}