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次下载
26KB
519 行
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版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证定义,应如上所述双重许可,而不附加任何其他条款或条件。
依赖项
~0–2.9MB
~80K SLoC