提交 e379be45 编写于 作者: A armink

【增加】V4.0 迁移文档。

Signed-off-by: Narmink <armink.ztl@gmail.com>
上级 ccccd826
......@@ -77,7 +77,7 @@ V4.0 设计及内部原理,V4.0 迁移指南等更多内容请继续阅读下
- API 文档:[`\docs\zh\api.md`](/docs/zh/api.md)
- 移植文档:[`\docs\zh\port.md`](/docs/zh/port.md)
- V4.0 迁移指南:[`\docs\zh\v4_migrate.md`](/docs/zh/v4_migrate.md)
- V4.0 设计及实现细节[`\docs\zh\design.md`](/docs/zh/design.md)
- V4.0 ENV 功能设计与实现[`\docs\zh\design.md`](/docs/zh/design.md)
务必保证在 **阅读文档** 后再移植使用。
......
......@@ -55,7 +55,7 @@ len = ef_get_env_blob("key", value, sizeof(value) , NULL);
**注意**
- 该函数不推荐继续使用,可以使用上面的函数替代;
- 该函数已废弃,不推荐继续使用,可以使用上面的函数替代;
- 该函数不支持可重入,返回的值位于函数内部缓冲区,出于安全考虑,请加锁保护。
```C
......
马上就来……
\ No newline at end of file
# V4.0 迁移指南
## 1、V3.0 与 V4.0 差异
### 1.1 API 接口方面
#### 1.1.1 完全兼容旧版
V4.0 在设计时,已经做到接口完全兼容旧版本,所以如果你的应用使用的是旧版本,那么无需修改任何源代码即可做到无缝迁移。
#### 1.1.2 新增接口
V4.0 底层对于 ENV 的存储使用的 blob 格式,所以增加如下 blob 操作接口,替代 V3.0 的基于字符串的接口
- `size_t ef_get_env_blob(const char *key, void *value_buf, size_t buf_len, size_t *value_len)`
- `EfErrCode ef_set_env_blob(const char *key, const void *value_buf, size_t buf_len)`
#### 1.1.3 废弃接口
以下接口在 V4.0 中仍然可用,但已经由于种种原因被废弃,可能将会在 V5.0 版本中被正式删除
- `char *ef_get_env(const char *key)`
- `EfErrCode ef_save_env(void)`
- `EfErrCode ef_set_and_save_env(const char *key, const char *value)`
- `EfErrCode ef_del_and_save_env(const char *key)`
- `size_t ef_get_env_write_bytes(void)`
## 2、主要修改项
### 2.1 配置方面
- 删除 EF_ENV_USING_WL_MODE:V4.0 原生支持磨损平衡,无需额外开启
- 删除 EF_ENV_USING_PFS_MODE:V4.0 自带掉电保护功能,无需额外开启
- 删除 ENV_USER_SETTING_SIZE:V4.0 无需 RAM 缓存
- 增加 EF_WRITE_GRAN :详见移植文档
## 2.2 接口改进
- 建议使用 ef_get_env_blob 接口替代 ef_get_env,使用方法详见 API 文档
- V4.0 无需额外执行保存动作,所以使用这些接口的代码在 V4..0 无意义,可以移除
- ef_save_env
- ef_set_and_save_env
- ef_del_and_save_env
......@@ -1038,6 +1038,8 @@ EfErrCode ef_del_env(const char *key)
* The same to ef_del_env on this mode
* It's compatibility with older versions (less then V4.0).
*
* @note this function is DEPRECATED
*
* @param key ENV name
*
* @return result
......@@ -1132,6 +1134,8 @@ EfErrCode ef_set_env(const char *key, const char *value)
* The same to ef_set_env on this mode.
* It's compatibility with older versions (less then V4.0).
*
* @note this function is DEPRECATED
*
* @param key ENV name
* @param value ENV value
*
......@@ -1144,6 +1148,8 @@ EfErrCode ef_set_and_save_env(const char *key, const char *value)
/**
* Save ENV to flash.
*
* @note this function is DEPRECATED
*/
EfErrCode ef_save_env(void)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册