Expand description
Flash-based EEPROM emulation for the STM32 series microcontrollers. Uses 2 or more Flash pages for storing 16-bit data.
Examples
use eeprom::EEPROM;
struct MockFlash;
// let param = Params { .. };
// let mut flash: stm32f1::stm32f103::FLASH = /* get flash somehow */;
let mut eeprom = flash.eeprom(params);
eeprom.init().expect("failed to init EEPROM");
eeprom.write(1, 0xdead).expect("failed to write data to EEPROM");
eeprom.write(2, 0xbeef).expect("failed to write data to EEPROM");
assert_eq!(0xdead, eeprom.read(1).unwrap());
assert_eq!(0xbeef, eeprom.read(2).unwrap());
assert_eq!(true, eeprom.read(3).is_none());
Panics
EEPROM controller will panic in the following cases:
- No free space on the page even after compaction
- active page cannot be found during
read
/write
operation (init
makes sure that there is exactly one active page.
Structs
EEPROM controller. Uses Flash for implementing key-value storage for 16-bit data values.
EEPROM configuration parameters