【开源】EasyFlash 4.0 正式版发布,性能大幅提升

2019-12-09 13:37发布

本帖最后由 sunnydragon 于 2019-8-11 22:08 编辑

自年初发布了 EasyFlash 4.0 beta 版后EasyFlash 迎来了全新的 NG (Next Generation) 模式。 新的模式相比以前有着众多的优势,比如
  • 1、更小的资源占用,内存占用 几乎为 0 ;
  • 2、ENV 的值类型支持 任意类型 、任意长度,相当于直接 memcpy 变量至 flash ;
  • 3、ENV 操作效率比以前的模式高,充分利用剩余空闲区域,擦除次数及操作时间显著降低;
  • 4、原生支持 磨损平衡、掉电保护功能 (V4.0 之前需要占用额外的 Flash 扇区);
  • 5、ENV 支持 增量升级 ,固件升级后 ENV 也支持升级;

在 beta 版本发布的这段时间里,收到很多开发者使用反馈,解决了一些使用过程中的问题,包括:性能,可靠性等等

最大的改进是增加了类似 LRU (Least Recently Used) 的 Cache 机制,大幅提升了 ENV 查找,写入及 GC 时的效率。


经过这段时间的集中测试,现在终于可以发布 V4.0 正式版了。


未来随着 IoT 场景的多样化要求, EasyFlash 还会做更多改进与提升,目前已知的规划会有:
  • 1、支持数据加密,IoT 时代的安全性是重中之重;
  • 2、增加数据压缩,让同样大小的 Flash 可以存储更多的内容;
  • 3、支持大数据存储模式,长度无限制,数据可在多个 Flash 扇区上顺序存储;
  • 4、增加 ENV 迭代器,检索 ENV 更加方便;
  • 5、……
请评论投票下你所期待的新功能吧,排名靠前的功能将会优先支持……


V4.0 正式版下载:
最新代码及在线文档详见:https://github.com/armink/EasyFlash






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
zhzj2007
1楼-- · 2019-12-21 08:34
本帖最后由 zhzj2007 于 2019-8-27 14:34 编辑
sunnydragon 发表于 2019-8-27 13:58
beta 版相比正式版会存在一定的兼容性问题,如果是全新的 flash 应该没有问题

如果使用在旧 flash 上会 ...


一:我刚用4.0正式版本,STM32F10X那个DEMO测试,MDK编译,优化级别为3时候,ef_get_env就返回0,然后进入 assert_failed   优化级别为0则不会
二:FLASH整片擦除,也算是新FLASH吧
三:附件是正式版中的DEMO,我把型号改为STM32F103RBT6了,PAGESIZE=1024,设置为优化级3,则ef_get_env就返回0,然后进入 assert_failed   优化级别为0则不会
zhzj2007
2楼-- · 2019-12-21 13:59
本帖最后由 zhzj2007 于 2019-8-27 14:55 编辑

我现在用得的感受,V4.0-BEAT感觉比V4.0正式版好用.
说来也奇怪,升级为4.0正式版后,我自己的工程,则要优化为3级才正常,优化为0级的时候,永远不会初始化参数,每次下载都整片擦除的,没升级前和优化级别没关系
lizuqing
3楼-- · 2019-12-21 18:57
 精彩回答 2  元偷偷看……
sunnydragon
4楼-- · 2019-12-21 21:03
zhzj2007 发表于 2019-8-27 14:35
我现在用得的感受,V4.0-BEAT感觉比V4.0正式版好用.
说来也奇怪,升级为4.0正式版后,我自己的工程,则要优 ...

你的意思是,同样是最新的 正式版 V4.0

自带的那个 f1 demo 开了 优化不好使,不开好使

你的项目里,开了优化才好使,不开就不好使

是这个逻辑吗?
相由心生
5楼-- · 2019-12-21 22:48
我觉得刚需的功能已经很够了,有个重要的功能倒是值得考虑,那就是支持多个EasyFlash。当然解决方法也不难,改为像littlefs一样,传入配置文件就行,我觉得这个功能最值得下一步加入!。
zhzj2007
6楼-- · 2019-12-22 00:57
本帖最后由 zhzj2007 于 2019-8-28 09:06 编辑
sunnydragon 发表于 2019-8-27 21:59
你的意思是,同样是最新的 正式版 V4.0

自带的那个 f1 demo 开了 优化不好使,不开好使


是的。我退回到4.0-BEAT,则优化级3和0都正常,不正常的时候,我跟了下程序,执行到ef_load_env()中,check_failed_count 不等于SECTOR_NUM ,所以初始化不了参数

一周热门 更多>