提交 173b09d7 编写于 作者: A armink

【完善】说明文档

Signed-off-by: Narmink <armink.ztl@gmail.com>
上级 ad783652
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
## 1、介绍([English](#1-introduction)) ## 1、介绍([English](#1-introduction))
> **提示** :从 EasyFlash V4.1 后,基于 EasyFlash 全新设计开发的 [FlashDB](https://github.com/armink/FlashDB) 开源项目正式上线,新集成了时序数据库、多分区管理,多数据库实例等功能,也从一定程度上提升了整体性能,欢迎关注:https://github.com/armink/FlashDB 。同时,现有的 EasyFlash 也会继续维护。
[EasyFlash](https://github.com/armink/EasyFlash)是一款开源的轻量级嵌入式Flash存储器库,方便开发者更加轻松的实现基于Flash存储器的常见应用开发。非常适合智能家居、可穿戴、工控、医疗、物联网等需要断电存储功能的产品,资源占用极低,支持各种 MCU 片上存储器。该库主要包括 **三大实用功能** [EasyFlash](https://github.com/armink/EasyFlash)是一款开源的轻量级嵌入式Flash存储器库,方便开发者更加轻松的实现基于Flash存储器的常见应用开发。非常适合智能家居、可穿戴、工控、医疗、物联网等需要断电存储功能的产品,资源占用极低,支持各种 MCU 片上存储器。该库主要包括 **三大实用功能**
- **ENV** 快速保存产品参数,支持 **写平衡(磨损平衡)****掉电保护** 功能 - **ENV** 快速保存产品参数,支持 **写平衡(磨损平衡)****掉电保护** 功能
...@@ -18,7 +20,13 @@ EasyFlash不仅能够实现对产品的 **设定参数** 或 **运行日志** ...@@ -18,7 +20,13 @@ EasyFlash不仅能够实现对产品的 **设定参数** 或 **运行日志**
非常适合应用在小型的不带文件系统的产品中,方便开发人员快速定位、查找系统发生崩溃或死机的原因。同时配合[EasyLogger](https://github.com/armink/EasyLogger)(我开源的超轻量级、高性能C日志库,它提供与EasyFlash的无缝接口)一起使用,轻松实现C日志的Flash存储功能。 非常适合应用在小型的不带文件系统的产品中,方便开发人员快速定位、查找系统发生崩溃或死机的原因。同时配合[EasyLogger](https://github.com/armink/EasyLogger)(我开源的超轻量级、高性能C日志库,它提供与EasyFlash的无缝接口)一起使用,轻松实现C日志的Flash存储功能。
### 1.1、V4.0 NG 模式 ### 1.1 两种 ENV 模式
目前 ENV 功能有两种主要模式,一种为 V4.0 带来的 **NG** 模式,还有一种为延续 V3.0 的 **legacy** 模式
#### 1.1.1、V4.0 引入的 NG 模式
> 对应源码文件为: `ef_env.c`
自 2019 年春节后,EasyFlash 经过 4 年多的迭代,结合众多开发者的需求及建议,终于发布了 V4.0 版本,该版本中的 ENV 功能被命名为 **NG** (Next Generation) 模式,这是一个完全重构的新版本,具有以下新特性: 自 2019 年春节后,EasyFlash 经过 4 年多的迭代,结合众多开发者的需求及建议,终于发布了 V4.0 版本,该版本中的 ENV 功能被命名为 **NG** (Next Generation) 模式,这是一个完全重构的新版本,具有以下新特性:
...@@ -33,6 +41,26 @@ EasyFlash不仅能够实现对产品的 **设定参数** 或 **运行日志** ...@@ -33,6 +41,26 @@ EasyFlash不仅能够实现对产品的 **设定参数** 或 **运行日志**
V4.0 设计及内部原理,V4.0 迁移指南等更多内容请继续阅读下面的 [文档章节](#3文档) V4.0 设计及内部原理,V4.0 迁移指南等更多内容请继续阅读下面的 [文档章节](#3文档)
> **注意** :个别 Flash 存在无法逆序写入的问题,例如 STM32L4 片内 Flash,所以无法使用 NG 模式,这种情况下建议使用 V3.0 的 legacy 模式
#### 1.1.2、延续 V3.0 的 legacy 模式
> 对应源码文件为: `ef_env_legacy.c` 及 `ef_env_legacy_wl.c`
**legacy** 模式也具有磨损平衡及掉电保护功能,相比于 V 4.0 NG 模式,使用 legacy 模式,需要有额外的 RAM 空间来临时缓存每个 ENV ,最终调用 save 接口,统一擦除扇区再存储到 Flash 上。
#### 1.1.3 ENV 模式对比
| | V4.0 NG 模式 | V3.0 legacy 模式 |
| -------------------- | ------------------------------------------ | ------------------------ |
| RAM 资源占用 | 低 | 高 |
| 支持 Flash 全面性 | 个别 Flash 受限:例如 STM32L4 片内 | 比较全面 |
| 是否需要 GC 垃圾回收 | 需要 GC ,这会导致触发 GC 时,写入速度变慢 | 不需要 |
| value 类型限制 | 无限制 | 对字符串类型支持的比较好 |
| 掉电保护 | 支持 | 支持 |
| 磨损平衡 | 支持 | 支持 |
| 增量升级 | 支持 | 支持 |
### 1.2、资源占用 ### 1.2、资源占用
``` ```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册