搜索
bottom↓
回复: 216

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

  [复制链接]

出0入198汤圆

发表于 2019-8-11 21:51:29 | 显示全部楼层 |阅读模式
本帖最后由 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






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

发表于 2019-8-11 21:55:08 | 显示全部楼层
强贴留名,妥妥滴

出0入0汤圆

发表于 2019-8-11 21:55:13 | 显示全部楼层
牛人啊,佩服

出0入42汤圆

发表于 2019-8-11 21:57:48 来自手机 | 显示全部楼层
支持大牛,我的产品又可以有更新了。

出0入42汤圆

发表于 2019-8-11 22:08:24 来自手机 | 显示全部楼层
谢谢楼主分享,新的项目可以用上

出0入0汤圆

发表于 2019-8-11 22:08:25 | 显示全部楼层
投票,哈哈..

3、支持大数据存储模式,长度无限制,数据可在多个 Flash 扇区上顺序存储;
2、增加数据压缩,让同样大小的 Flash 可以存储更多的内容;
1、支持数据加密,IoT 时代的安全性是重中之重;
4、增加 ENV 迭代器,检索 ENV 更加方便;

出0入8汤圆

发表于 2019-8-11 22:23:39 | 显示全部楼层
大牛新作,支持

出0入0汤圆

发表于 2019-8-11 22:29:41 | 显示全部楼层
关注也有几年了,没想到这个开源的小程序一直在更新完善,支持一个

出0入0汤圆

发表于 2019-8-11 22:32:22 | 显示全部楼层
hyz_avr 发表于 2019-8-11 22:08
投票,哈哈..

3、支持大数据存储模式,长度无限制,数据可在多个 Flash 扇区上顺序存储;

经验之谈啊!

出0入0汤圆

发表于 2019-8-11 22:41:59 | 显示全部楼层
支持支持!
学习这个项目的源码也是一种享受。

出0入0汤圆

发表于 2019-8-11 23:04:39 | 显示全部楼层
支持大牛的作品!!!
国内这种类似的作品太少了

出590入992汤圆

发表于 2019-8-11 23:17:13 | 显示全部楼层
支持支持!

出0入0汤圆

发表于 2019-8-12 00:12:28 | 显示全部楼层
支持,学习了!

出0入0汤圆

发表于 2019-8-12 00:34:29 来自手机 | 显示全部楼层
支持支持!

出140入8汤圆

发表于 2019-8-12 07:03:10 | 显示全部楼层
一直star着的,阅读学习楼主的源码确实是一种享受

出140入115汤圆

发表于 2019-8-12 07:37:29 | 显示全部楼层
一直在关注EasyFlash,多谢楼主分享

出0入0汤圆

发表于 2019-8-12 08:16:53 | 显示全部楼层
用过,真的蛮好用,支持楼主

出0入0汤圆

发表于 2019-8-12 08:27:38 | 显示全部楼层
niubility 顶顶顶

出0入0汤圆

发表于 2019-8-12 08:34:55 | 显示全部楼层
一直在使用,感谢开源,持续关注中

出0入0汤圆

发表于 2019-8-12 08:35:09 | 显示全部楼层
关注, 感谢分享!

出40入42汤圆

发表于 2019-8-12 08:36:03 | 显示全部楼层
顶一下,可能之后会用到

出0入0汤圆

发表于 2019-8-12 08:36:04 | 显示全部楼层
感谢分享,start了下

出0入0汤圆

发表于 2019-8-12 08:41:52 | 显示全部楼层
又更新了,支持。

出1000入0汤圆

发表于 2019-8-12 08:43:59 | 显示全部楼层
谢谢分享,支持

出0入0汤圆

发表于 2019-8-12 08:44:21 | 显示全部楼层
棒,之前发布的,在使用了,看来要再更新一下

出0入0汤圆

发表于 2019-8-12 08:46:26 | 显示全部楼层
感谢分享

出0入0汤圆

发表于 2019-8-12 09:00:55 来自手机 | 显示全部楼层
虽然不是很懂,也得Mark一下。

出0入8汤圆

发表于 2019-8-12 09:02:53 | 显示全部楼层
hyz_avr 发表于 2019-8-11 22:08
投票,哈哈..

3、支持大数据存储模式,长度无限制,数据可在多个 Flash 扇区上顺序存储;

虽然暂时用不到 EasyFlash,但要投票的话,还是你这个顺序比较好。

出0入0汤圆

发表于 2019-8-12 09:20:20 | 显示全部楼层
谢谢分享

出0入90汤圆

发表于 2019-8-12 09:28:25 | 显示全部楼层
挺不错的,我的一个产品中也用了楼主之前开源的某个代码了的。

出0入13汤圆

发表于 2019-8-12 09:29:09 | 显示全部楼层
支持大牛的作品!!!

出0入0汤圆

发表于 2019-8-12 09:30:22 | 显示全部楼层
关注EasyFlash,准备试试。谢谢分享。

出0入0汤圆

发表于 2019-8-12 09:33:38 | 显示全部楼层
谢谢分享

出100入18汤圆

发表于 2019-8-12 09:35:29 | 显示全部楼层
坚持不易,强力支持!

出0入8汤圆

发表于 2019-8-12 09:37:15 | 显示全部楼层
强势插入前100, 哈哈哈

出0入0汤圆

发表于 2019-8-12 09:38:03 | 显示全部楼层
谢谢楼主分享

出50入8汤圆

发表于 2019-8-12 09:42:28 | 显示全部楼层
感谢分享,star

出30入54汤圆

发表于 2019-8-12 09:58:22 | 显示全部楼层
膜拜楼主!!!

出50入0汤圆

发表于 2019-8-12 09:58:30 | 显示全部楼层
谢谢楼主的分享

出0入0汤圆

发表于 2019-8-12 10:02:15 | 显示全部楼层
坚持不易,强力支持! +1

出0入50汤圆

发表于 2019-8-12 10:41:29 | 显示全部楼层
坚持不易,强力支持! +1

出0入0汤圆

发表于 2019-8-12 10:52:33 | 显示全部楼层
支持大牛

出0入0汤圆

发表于 2019-8-12 10:54:52 | 显示全部楼层
感谢分享

出0入0汤圆

发表于 2019-8-12 11:02:40 | 显示全部楼层
楼主厉害,支持一下

出0入0汤圆

发表于 2019-8-12 11:19:32 | 显示全部楼层
支持支持!

出0入42汤圆

发表于 2019-8-12 17:06:29 来自手机 | 显示全部楼层
我刚才试了一下,发现使用春节发布的那个版本存储的数据,升级到现在发布的版本后,之前版本保存的数据就无效了,需要重新set_default,请问一下楼主大神是不是这样的?

出0入8汤圆

发表于 2019-8-12 17:21:48 | 显示全部楼层
持续关注,支持~~

出0入0汤圆

发表于 2019-8-12 17:43:08 | 显示全部楼层
强贴留名,妥妥滴

出0入0汤圆

发表于 2019-8-12 17:46:33 | 显示全部楼层
3、支持大数据存储模式,长度无限制,数据可在多个 Flash 扇区上顺序存储;
4、增加 ENV 迭代器,检索 ENV 更加方便;
1、支持数据加密,IoT 时代的安全性是重中之重;
2、增加数据压缩,让同样大小的 Flash 可以存储更多的内容;

flash容量现在不是太大的问题,所以投这个

出0入0汤圆

发表于 2019-8-12 17:54:13 | 显示全部楼层
强贴流名   非常感谢lz无私奉献

出0入0汤圆

发表于 2019-8-12 18:37:49 | 显示全部楼层

是啊,不过这个还是挺好用的

出0入0汤圆

发表于 2019-8-12 19:10:46 | 显示全部楼层
谢谢楼主分享

出0入0汤圆

发表于 2019-8-12 19:20:11 | 显示全部楼层
多谢楼主分享。

出0入198汤圆

 楼主| 发表于 2019-8-12 19:29:55 | 显示全部楼层
my_avr 发表于 2019-8-12 17:06
我刚才试了一下,发现使用春节发布的那个版本存储的数据,升级到现在发布的版本后,之前版本保存的数据就无 ...

是的,因为正式版增加了一个字段,后续发布的版本应该都不会存在这类问题了。

出0入0汤圆

发表于 2019-8-12 21:06:57 | 显示全部楼层
支持大牛!!!

出0入0汤圆

发表于 2019-8-12 21:12:31 | 显示全部楼层
谢谢楼主的分享

出0入0汤圆

发表于 2019-8-12 21:38:33 | 显示全部楼层
这个用起来不错,谢谢

出0入76汤圆

发表于 2019-8-12 22:05:48 | 显示全部楼层
强烈支持,感谢分享

出0入0汤圆

发表于 2019-8-13 07:29:32 来自手机 | 显示全部楼层
感谢楼主分享

出0入4汤圆

发表于 2019-8-13 08:56:42 | 显示全部楼层
lz,我顶你个肺,太NB了,下载下来仔细研读

出0入0汤圆

发表于 2019-8-13 09:09:06 | 显示全部楼层
支持大牛的,太哇塞啦

出0入0汤圆

发表于 2019-8-13 09:11:18 | 显示全部楼层
谢谢分享!

出0入4汤圆

发表于 2019-8-13 09:23:06 | 显示全部楼层
支持,太强了。  暂时还没用上,后面有机会试试

出0入0汤圆

发表于 2019-8-13 09:33:40 | 显示全部楼层
持续关注,谢谢大牛分享。

出0入198汤圆

 楼主| 发表于 2019-8-14 21:34:34 | 显示全部楼层
hyz_avr 发表于 2019-8-11 22:08
投票,哈哈..

3、支持大数据存储模式,长度无限制,数据可在多个 Flash 扇区上顺序存储;

OK ,大数据存储模式差不多基本被定为下一个版本发布的功能,一起期待吧

出0入198汤圆

 楼主| 发表于 2019-8-14 21:37:18 | 显示全部楼层
security 发表于 2019-8-12 09:02
虽然暂时用不到 EasyFlash,但要投票的话,还是你这个顺序比较好。

兄弟,用不用不要紧,有机会可以一起参与到新版本的开发过程哈

出0入198汤圆

 楼主| 发表于 2019-8-14 21:38:40 | 显示全部楼层
honami520 发表于 2019-8-12 09:28
挺不错的,我的一个产品中也用了楼主之前开源的某个代码了的。

多谢支持哈,有建议和体会可以多多反馈

出0入198汤圆

 楼主| 发表于 2019-8-14 21:39:24 | 显示全部楼层
Excellence 发表于 2019-8-12 09:30
关注EasyFlash,准备试试。谢谢分享。

试用完可以分享下体验哈

出0入4汤圆

发表于 2019-8-15 08:08:59 | 显示全部楼层
请问lz,如果作为保存参数用,有校验和备份吗?如果写入一半的时候掉电,能回复到旧的数据吗?

出0入0汤圆

发表于 2019-8-15 08:54:18 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2019-8-15 09:20:48 | 显示全部楼层
EasyFlash, 是什么东东,科普一下?

是嵌入在C中的 函数模块? 还是独立的工具直接read write FLASH的工具?

出0入8汤圆

发表于 2019-8-15 09:23:45 | 显示全部楼层
huanxian 发表于 2019-8-15 09:20
EasyFlash, 是什么东东,科普一下?

是嵌入在C中的 函数模块? 还是独立的工具直接read write FLASH的工 ...


嵌入在 C 中的 函数模块,具体细节,去这里看吧:https://github.com/armink/EasyFlash

出0入198汤圆

 楼主| 发表于 2019-8-16 08:50:59 | 显示全部楼层
liuqian 发表于 2019-8-15 08:08
请问lz,如果作为保存参数用,有校验和备份吗?如果写入一半的时候掉电,能回复到旧的数据吗? ...

数据是有校验的,也支持你说的这种掉电保护需求,相关测试我都是做过的。

你可以把 demo 里的固件下载到自己的板子上也验证下哈,期待你的结果

出0入0汤圆

发表于 2019-8-26 06:17:14 | 显示全部楼层
多一点文档说明,推广会更快些,不清楚与little Fs的差异在哪里?

出0入0汤圆

发表于 2019-8-26 08:23:20 | 显示全部楼层
支持

出0入0汤圆

发表于 2019-8-26 17:21:27 | 显示全部楼层
hyz_avr 发表于 2019-8-11 22:08
投票,哈哈..

3、支持大数据存储模式,长度无限制,数据可在多个 Flash 扇区上顺序存储;

妥妥滴有需求啊

出0入0汤圆

发表于 2019-8-26 20:37:01 | 显示全部楼层
赞一个,多谢楼主分享

出0入4汤圆

发表于 2019-8-27 09:42:14 | 显示全部楼层
大神有详细的使用文档,之前想用来着的

出0入0汤圆

发表于 2019-8-27 10:45:50 | 显示全部楼层
从V4.0 BEAT更新为V4.0正式版,把easyflash文件夹里的程序修改部分更新,发现读出来的参数全部是0了,写参数也不正常,烧录程序时是全擦除芯片的,看下面输出的日志,是哪里不对吗?  V4.0 BEAT 时候都正常的。
ENV start address is 0x0801EC00, size is 4096 bytes.
EasyFlash V4.0.0 is initialize success.
flash_init succeed
Trigger a GC check after alloc ENV failed.
Warning: Alloc an ENV (size 48) failed when new ENV. Now will GC then retry.
The remain empty sector is 1, GC threshold is 1.
Trigger a GC check after alloc ENV failed.

出0入0汤圆

发表于 2019-8-27 12:21:02 | 显示全部楼层
原来是把优化级别改为LEVEL_0反而 EASYFLASH 不正常,改为LEVEL_3    EASYFLASH才正常,楼主知道什么问题吗?

出0入0汤圆

发表于 2019-8-27 12:37:57 | 显示全部楼层
同样程序,EasyFlash v4.0 beat优化等级为LEVEL-0或LEVEL-3都是正常的。    v4.0正式版则要LEVEL-3才正常,用的是MDK编译

出0入0汤圆

发表于 2019-8-27 13:15:43 | 显示全部楼层
刚好手头有个flash存储项目,我来移植看看。谢谢楼主分享

出0入85汤圆

发表于 2019-8-27 13:16:03 | 显示全部楼层
强人。
慢慢学习。

出0入198汤圆

 楼主| 发表于 2019-8-27 13:58:46 | 显示全部楼层
zhzj2007 发表于 2019-8-27 10:45
从V4.0 BEAT更新为V4.0正式版,把easyflash文件夹里的程序修改部分更新,发现读出来的参数全部是0了,写参 ...

beta 版相比正式版会存在一定的兼容性问题,如果是全新的 flash 应该没有问题

如果使用在旧 flash 上会出现一些错误,调用恢复 env 至出厂接口才能使用正式版本

跟 优化级别感觉没啥关系

出0入0汤圆

发表于 2019-8-27 14:28:28 | 显示全部楼层
本帖最后由 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则不会

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-8-27 14:35:48 | 显示全部楼层
本帖最后由 zhzj2007 于 2019-8-27 14:55 编辑

我现在用得的感受,V4.0-BEAT感觉比V4.0正式版好用.
说来也奇怪,升级为4.0正式版后,我自己的工程,则要优化为3级才正常,优化为0级的时候,永远不会初始化参数,每次下载都整片擦除的,没升级前和优化级别没关系

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-8-27 21:58:41 | 显示全部楼层
牛人啊,佩服

出0入198汤圆

 楼主| 发表于 2019-8-27 21:59:26 | 显示全部楼层
zhzj2007 发表于 2019-8-27 14:35
我现在用得的感受,V4.0-BEAT感觉比V4.0正式版好用.
说来也奇怪,升级为4.0正式版后,我自己的工程,则要优 ...

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

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

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

是这个逻辑吗?

出0入0汤圆

发表于 2019-8-27 22:05:58 | 显示全部楼层
我觉得刚需的功能已经很够了,有个重要的功能倒是值得考虑,那就是支持多个EasyFlash。当然解决方法也不难,改为像littlefs一样,传入配置文件就行,我觉得这个功能最值得下一步加入!。

出0入0汤圆

发表于 2019-8-28 09:02:06 | 显示全部楼层
本帖最后由 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 ,所以初始化不了参数

出0入198汤圆

 楼主| 发表于 2019-8-28 09:03:04 | 显示全部楼层
相由心生 发表于 2019-8-27 22:05
我觉得刚需的功能已经很够了,有个重要的功能倒是值得考虑,那就是支持多个EasyFlash。当然解决方法也不难 ...

嗯,支持多实例 计划是在 EasyFlash 5.0 发布的功能

出0入198汤圆

 楼主| 发表于 2019-8-28 09:04:01 | 显示全部楼层
zhzj2007 发表于 2019-8-28 09:02
是的。我退回到4.0-BEAT,则优化级3和0都正常。

能否单步看下代码具体执行底层流程上的差异吗

出0入0汤圆

发表于 2019-8-28 09:07:12 | 显示全部楼层
sunnydragon 发表于 2019-8-28 09:04
能否单步看下代码具体执行底层流程上的差异吗

不正常的时候,我跟了下程序,执行到ef_load_env()中,check_failed_count 不等于SECTOR_NUM ,所以初始化不了参数

出0入198汤圆

 楼主| 发表于 2019-8-28 09:22:48 | 显示全部楼层
zhzj2007 发表于 2019-8-28 09:07
不正常的时候,我跟了下程序,执行到ef_load_env()中,check_failed_count 不等于SECTOR_NUM ,所以初始 ...

重新恢复出厂环境变量是调用这个 API ef_env_set_default

出0入0汤圆

发表于 2019-8-28 09:49:22 | 显示全部楼层
sunnydragon 发表于 2019-8-28 09:22
重新恢复出厂环境变量是调用这个 API ef_env_set_default

执行到ef_load_env()中,check_failed_count 不等于SECTOR_NUM,所以不会执行 ef_env_set_default,格式化下载程序,被优化时也不会执行这个,不优化时可以执行

出0入198汤圆

 楼主| 发表于 2019-8-28 13:53:49 | 显示全部楼层
zhzj2007 发表于 2019-8-28 09:49
执行到ef_load_env()中,check_failed_count 不等于SECTOR_NUM,所以不会执行 ef_env_set_default,格式化 ...

为何 check_failed_count 会不等于SECTOR_NUM 呢?这部分能否深入看一下

另外,ef_env_set_default 是可以给上层用户调用的 API

出0入0汤圆

发表于 2019-8-28 17:50:44 | 显示全部楼层
留名研究研究

出0入0汤圆

发表于 2019-8-28 22:02:59 | 显示全部楼层
感谢分享,很好的东西

出0入0汤圆

发表于 2019-8-28 23:33:43 | 显示全部楼层
好东西  收藏  妥妥的

出100入0汤圆

发表于 2019-8-29 09:53:35 | 显示全部楼层
楼主强
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-18 08:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表