ef_cfg.h 配置文件
-
#ifndef EF_CFG_H_
-
#define EF_CFG_H_
-
-
/* using ENV function */
-
#define EF_USING_ENV
-
/* using wear leveling mode for ENV */
-
/* #define EF_ENV_USING_WL_MODE */
-
/* using power fail safeguard mode for ENV */
-
/* #define EF_ENV_USING_PFS_MODE */
-
-
/* using IAP function */
-
#define EF_USING_IAP
-
-
/* using save log function */
-
/* #define EF_USING_LOG */
-
-
/* the minimum size of flash erasure */
-
#define EF_ERASE_MIN_SIZE /* @note you must define it for a value */
-
-
/**
-
*
-
* This all Backup Area Flash storage index. All used flash area configure is under here.
-
* |----------------------------| Storage Size
-
* | Environment variables area | ENV area size @see ENV_AREA_SIZE
-
* | 1.system section | ENV_SYSTEM_SIZE
-
* | 2:data section | ENV_AREA_SIZE - ENV_SYSTEM_SIZE
-
* |----------------------------|
-
* | Saved log area | Log area size @see LOG_AREA_SIZE
-
* |----------------------------|
-
* |(IAP)Downloaded application | IAP already downloaded application, unfixed size
-
* |----------------------------|
-
*
-
* @note all area size must be aligned with EF_ERASE_MIN_SIZE
-
* @note EasyFlash will use ram to buffered the ENV. At some time flash's EF_ERASE_MIN_SIZE is so big,
-
* and you want use ENV size is less than it. So you must defined ENV_USER_SETTING_SIZE for ENV.
-
* @note ENV area size has some limitations in different modes.
-
* 1.Normal mode: no more limitations
-
* 2.Wear leveling mode: system section will used an flash section and the data section will used at least 2 flash sections
-
* 3.Power fail safeguard mode: ENV area will has an backup. It is twice as normal mode.
-
* 4.wear leveling and power fail safeguard mode: The required capacity will be 2 times the total capacity in wear leveling mode.
-
* For example:
-
* The EF_ERASE_MIN_SIZE is 128K and the ENV_USER_SETTING_SIZE: 2K. The ENV_AREA_SIZE in different mode you can define
-
* 1.Normal mode: 1*EF_ERASE_MIN_SIZE
-
* 2.Wear leveling mode: 3*EF_ERASE_MIN_SIZE (It has 2 data section to store ENV. So ENV can erase at least 200,000 times)
-
* 3.Power fail safeguard mode: 2*EF_ERASE_MIN_SIZE
-
* 4.Wear leveling and power fail safeguard mode: 6*EF_ERASE_MIN_SIZE
-
* @note the log area size must be more than twice of EF_ERASE_MIN_SIZE
-
*/
-
/* backup area start address */
-
#define EF_START_ADDR /* @note you must define it for a value */
-
/* the user setting size of ENV, must be word alignment */
-
#define ENV_USER_SETTING_SIZE /* @note you must define it for a value if you used ENV */
-
/* ENV area total bytes size in normal mode. */
-
#define ENV_AREA_SIZE /* @note you must define it for a value if you used ENV */
-
/* saved log area size */
-
#define LOG_AREA_SIZE /* @note you must define it for a value if you used log */
-
-
/* print debug information of flash */
-
#define PRINT_DEBUG
-
-
#endif /* EF_CFG_H_ */
从上图可以看出,存储分为了三个区,环境变量区(包含了系统区和数据区)、日志区和在线升级区。
可选择宏(注释掉就表示关闭对应的功能):
PRINT_DEBUG /* print debug information of flash */ 使用调试功能
EF_USING_IAP /* using IAP function */ 使用IAP 功能
EF_USING_LOG /* using save log function */ 使用日志功能
EF_USING_ENV /* using ENV function */使用环境功能
EF_ENV_USING_WL_MODE /* using wear leveling mode for ENV */ 使用损坏均衡环境功能
EF_ENV_USING_PFS_MODE /* using power fail safeguard mode for ENV */使用掉电保护环境功能
上面三者之间的区别:
* 1.Normal mode: no more limitations
* 2.Wear leveling mode: system section will used an flash section and the data section will used at least 2 flash sections
* 3.Power fail safeguard mode: ENV area will has an backup. It is twice as normal mode.
* 4.wear leveling and power fail safeguard mode: The required capacity will be 2 times the total capacity in wear leveling mode.
1.
EF_USING_ENV: 属于普通的模式,没有太多的限制
2.
EF_ENV_USING_WL_MODE :使用损坏均衡模式,系统区会使用一个flash扇区,数据区会至少使用两个flash扇区
3.EF_ENV_USING_PFS_MODE && EF_ENV_USING_WL_MODE :flash使用是EF_ENV_USING_WL_MODE 模式下的两倍容量
注释为 /* @note you must define it for a value if you used ENV */ 是必须定义值的宏:
/* the minimum size of flash erasure */
#define EF_ERASE_MIN_SIZE 擦除的最小值
/* backup area start address */
#define EF_START_ADDR 备份区的开始地址
/* the user setting size of ENV, must be word alignment */
#define ENV_USER_SETTING_SIZE 用户环境区大小
/* ENV area total bytes size in normal mode. */
#define ENV_AREA_SIZE 环境区大小
/* saved log area size */
#define LOG_AREA_SIZE 日志区大小
本文乃黎社林原创文章,如有错误,请联系lishelin0505@163.com
阅读(2298) | 评论(0) | 转发(0) |