46 lines
903 B
Rust
46 lines
903 B
Rust
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)));
|
|
}
|
|
}
|
|
}
|