mod default; mod rom_chip; use crate::constants::constants_system::SIZE_32KB; use crate::periph::rom_chip::RomChip; /// At28C256 /// /// Represents a single At28C256 Chip /// /// 256kbit storage /// 32kbyte storage pub struct At28C256 { data: Box<[u8; SIZE_32KB]>, } impl At28C256 { pub fn program(&mut self, new_program: &[u8; 32768]) { self.data= new_program.into(); } } #[cfg(test)] mod test { use crate::constants::constants_system::SIZE_1KB; use super::*; #[test] fn smoke() { assert!(true) } #[test] fn programmed_data_reads_back_same() { let mut data = At28C256::default(); for i in 0..SIZE_32KB { data.data[i] = 0xea; } for offset in 0..SIZE_32KB { if offset.is_multiple_of(SIZE_1KB) { }; assert_eq!(0xea, data.read(&(offset as u16))); } } }