From 435b1ffa3a5f00207d8e283e0ef9e49a124b91c0 Mon Sep 17 00:00:00 2001 From: armink Date: Thu, 2 May 2019 23:35:07 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=A2=9E=E5=8A=A0=E3=80=91=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=BB=8B=E7=BB=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: armink --- docs/zh/api.md | 2 +- docs/zh/port.md | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/zh/api.md b/docs/zh/api.md index b580e5c..0e41a02 100644 --- a/docs/zh/api.md +++ b/docs/zh/api.md @@ -115,7 +115,7 @@ EfErrCode ef_del_env(const char *key) #### 1.2.4 重置环境变量 -将内存中的环境变量表重置为默认值。 +将内存中的环境变量表重置为默认值。关于默认环境变量的设定方法可以参考移植文档。 ```C EfErrCode ef_env_set_default(void) diff --git a/docs/zh/port.md b/docs/zh/port.md index 1f6ed8f..ff72161 100644 --- a/docs/zh/port.md +++ b/docs/zh/port.md @@ -159,6 +159,24 @@ void ef_print(const char *format, ...) |format |打印格式| |... |不定参| +### 4.10 默认环境变量集合 + +在 ef_port.c 文件顶部定义有 `static const ef_env default_env_set[]` ,我们可以将产品上需要的默认环境变量集中定义在这里。当 flash 第一次初始化时会将默认的环境变量写入。 + +默认环境变量内部采用 void * 类型,所以支持任意类型,可参考如下示例: + +```C +static uint32_t boot_count = 0; +static time_t boot_time[10] = {0, 1, 2, 3}; +static const ef_env default_env_set[] = { +// { key , value, value_len }, + {"username", "armink", 0}, //类型为字符串的环境变量可以设定值的长度为 0 ,此时会在初始化时会自动检测其长度 + {"password", "123456", 0}, + {"boot_count", &boot_count, sizeof(boot_count)}, //整形 + {"boot_time", &boot_time, sizeof(boot_time)}, //数组类型,其他类型使用方式类似 +}; +``` + ## 5、设置参数 配置时需要修改项目中的`ef_cfg.h`文件,开启、关闭、修改对应的宏即可。 @@ -210,7 +228,8 @@ void ef_print(const char *format, ...) 在配置时需要注意以下几点: - 1、所有的区域必须按照`EF_ERASE_MIN_SIZE`对齐; -- 2、从 V4.0 开始 ENV 的模式命名为 NG 模式,V4.0 之前的称之为 LEGACY 遗留模式; +- 2、环境变量分区大少至少为两倍以上 `EF_ERASE_MIN_SIZE`; +- 3、从 V4.0 开始 ENV 的模式命名为 NG 模式,V4.0 之前的称之为 LEGACY 遗留模式; - 遗留模式已经被废弃,不再建议继续使用; - 如果需要继续使用遗留模式,请 EasyFlash 的 V3.X 版本。