发布于 2016-02-24 03:19:51 | 121 次阅读 | 评论: 0 | 来源: 网友投递
EasyFlash 嵌入式Flash存储器库
EasyFlash是一款开源的轻量级嵌入式Flash存储器库,主要为MCU(Micro Control Unit)提供便捷、通用的上层应用接口,使得开发者更加高效实现基于的Flash存储器常见应用开发。
EasyFlash 是一款开源的轻量级嵌入式Flash存储器库,主要为MCU(Micro Control Unit)提供便捷、通用的上层应用接口,使得开发者更加高效实现基于的Flash存储器常见应用开发。该库目前提供 三大实用功能 :
Env 快速保存产品参数,支持 写平衡(磨损平衡) 及 掉电保护 模式
EasyFlash不仅能够实现对产品的 设定参数 或 运行日志 等信息的掉电保存功能,还封装了简洁的增加、删除、修改及查询方法, 降低了开发者对产品参数的处理难度,也保证了产品在后期升级时拥有更好的扩展性。让Flash变为NoSQL(非关系型数据库)模型的小型键值(Key-Value)存储数据库。
IAP 在线升级再也不是难事儿
该库封装了IAP(In-Application Programming)功能常用的接口,支持CRC32校验,同时支持Bootloader及Application的升级。
Log 无需文件系统,日志可直接存储在Flash上
非常适合应用在小型的不带文件系统的产品中,方便开发人员快速定位、查找系统发生崩溃或死机的原因。同时配合EasyLogger(我开源的超轻量级、高性能C日志库,它提供与EasyFlash的无缝接口)一起使用,轻松实现日志的Flash存储功能。
更多详细介绍、使用场景及使用说明请点击:Github 或 OSChina 进行查看。
本次更新日志如下:
新增 适合环境变量功能的类型转换插件;
新增 设置环境变量后立刻保存的方法;
优化 环境变量保存逻辑;
修复 日志功能中的部分 bug;
本次更新重点是类型转换插件(Types),目前 EasyFlash 会将环境变量以字符串形式存储于 Flash 中,在这种模式下,对于非字符串类型的环境变量在使用时,就必须得增加额外的字符串转换代码。设计 Types 插件就是为了方便用户在使用 EasyFlash 时,以更加简单的方式去操作各种类型的环境变量。
主要支持的类型包括:C 的 基本类型 、 数组类型 以及 结构体类型 。对于结构体类型, Types 插件内部采用 struct2json 库进行转换,所以项目中需要依赖 struct2json 库。
基本方法如下:
/* 获取基本类型环境变量 */ int boot_count = ef_get_int("开机次数"); /* 获取数组类型环境变量 */ int temp_record[100]; ef_get_int_array("温度记录", temp_record); /* 获取结构体类型环境变量 */ ef_get_struct("张三学生", &student, stu_get_cb);
更多更详细的使用方法,请参考源码中的说明文档(点击打开)