#stm32 #flash #emulation #data #microcontrollers #pages #top

无std eeprom

基于FLASH的STM32系列微控制器的EEPROM仿真

4个版本 (2个重大变更)

0.3.1 2022年11月19日
0.3.0 2022年11月19日
0.2.0 2022年1月4日
0.1.0 2017年9月30日

#1586 in 嵌入式开发

每月26次下载

MIT/Apache

26KB
519

crates.io crates.io CircleCI Codecov

eeprom

基于Flash的STM32系列微控制器的EEPROM仿真。使用2个或更多Flash页来存储16位数据。

示例

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());

恐慌

EEPROM控制器将在以下情况下恐慌

  • 压缩后页面上没有空闲空间
  • 在读取/写入操作期间找不到活动页面(read/write)(init确保恰好有一个活动页面。

完整文档

许可

根据以下之一许可

由您选择。

贡献

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证定义,应如上所述双重许可,而不附加任何其他条款或条件。

依赖项

~0–2.9MB
~80K SLoC