diff --git a/README.md b/README.md index 4646eb3..02abefb 100644 --- a/README.md +++ b/README.md @@ -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) 务必保证在 **阅读文档** 后再移植使用。 diff --git a/docs/zh/api.md b/docs/zh/api.md index b25a38c..0734430 100644 --- a/docs/zh/api.md +++ b/docs/zh/api.md @@ -55,7 +55,7 @@ len = ef_get_env_blob("key", value, sizeof(value) , NULL); **注意** : -- 该函数不推荐继续使用,可以使用上面的函数替代; +- 该函数已废弃,不推荐继续使用,可以使用上面的函数替代; - 该函数不支持可重入,返回的值位于函数内部缓冲区,出于安全考虑,请加锁保护。 ```C diff --git a/docs/zh/v4_migrate.md b/docs/zh/v4_migrate.md index c82008a..5ef3c85 100644 --- a/docs/zh/v4_migrate.md +++ b/docs/zh/v4_migrate.md @@ -1 +1,44 @@ -马上就来…… \ 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 + diff --git a/easyflash/src/ef_env.c b/easyflash/src/ef_env.c index 1b20791..6f47886 100644 --- a/easyflash/src/ef_env.c +++ b/easyflash/src/ef_env.c @@ -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) {