Crate eeprom [] [src]

Flash-based EEPROM emulation for the STM32 series microcontrollers. Uses 2 or more Flash pages for storing 16-bit data.

Examples

extern crate stm32f103xx;
extern crate eeprom;
use stm32f103xx::FLASH;
use eeprom::EEPROM;
// Get flash somehow...
// let flash = FLASH.borrow(cs);
let eeprom = flash.eeprom();
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

EEPROMController

EEPROM controller. Uses Flash for implementing key-value storage for 16-bit data values.

Traits

EEPROM

EEPROM-capable peripheral.