搜索
bottom↓
回复: 52
打印 上一主题 下一主题

【开源】嵌入式Flash闪存库 EasyFlash 已经支持裸机及STM32F4系列

  [复制链接]

出0入198汤圆

跳转到指定楼层
1
发表于 2015-4-23 21:14:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
EasyFlash是一款开源的轻量级嵌入式Flash存储器库,主要为MCU(Micro Control Unit)提供便捷、通用的上层应用接口,使得开发者更加高效实现基于的Flash存储器常见应用开发。该库目前提供 两大实用功能 :
  • Env 让变量轻松实现掉电保存,支持“写平衡”模式,无需担心变量长度、磨损平衡等问题。
    使用 键值对(key-value) 方式将变量存储到Flash中。在产品上,能够更加简捷的实现 设定参数 运行日志 等信息掉电保存的功能。
  • IAP 在线升级再也不是难事儿。
    该库封装了IAP(In-Application Programming)功能常用的接口,支持CRC32校验,同时支持Bootloader及Application的升级。

详细介绍见原帖:http://www.amobbs.com/thread-5613261-1-1.html



更新日志:
V1.04.23:
  • 新增 STM32F4系列Demo;
  • 新增 裸机平台Demo;
  • 优化 磨损平衡模式下的坏块替换策略;
  • 删除 动态内存申请及释放移植接口,降低移植难度;
  • 更新 API及其他说明文档;
  • 修复 部分bug;




下载
Github : https://github.com/armink/EasyFlash

开源中国 : http://git.oschina.net/armink/EasyFlash

本坛下载:

本帖子中包含更多资源

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

x

出0入0汤圆

2
发表于 2015-4-23 21:41:13 | 只看该作者
不错不错,谢谢分享

出0入0汤圆

3
发表于 2015-4-23 21:59:16 来自手机 | 只看该作者
这个要支持

出0入0汤圆

4
发表于 2015-4-23 22:03:48 | 只看该作者
谢谢分享

出0入0汤圆

5
发表于 2015-4-23 22:06:28 来自手机 | 只看该作者
掉电如何保存???

出0入0汤圆

6
发表于 2015-4-23 22:07:52 | 只看该作者
谢谢。支持!

出0入0汤圆

7
发表于 2015-4-23 22:15:35 | 只看该作者
谢谢分享!!!

出0入0汤圆

8
发表于 2015-4-23 22:31:34 | 只看该作者
马上下载看看实现代码

出20入70汤圆

9
发表于 2015-4-23 22:35:17 | 只看该作者
LZ厉害!

上次粗略的看了一下,请问        LZ个问题,如果我想存储一个二进制数组,或者结构体变量的全部信息,如何操作?貌似环境变量的存储均是字符串类型的。

出0入198汤圆

10
 楼主| 发表于 2015-4-24 07:49:59 | 只看该作者
soos 发表于 2015-4-23 22:06
掉电如何保存???

存到Flash里,断电不就不会丢失了。

出0入198汤圆

11
 楼主| 发表于 2015-4-24 07:54:54 | 只看该作者
techbaby 发表于 2015-4-23 22:35
LZ厉害!

上次粗略的看了一下,请问        LZ个问题,如果我想存储一个二进制数组,或者结构体变量的全部信息, ...

把结构体里的成员在存储时转换为字符串类型再进行保存。开机后读取对应的字符串,再用字符串转整形(atoi)、字符串转浮点型(atof)等方法还原数据类型即可。
在我的设备上都是这样做的,你可以看下demo。

出0入0汤圆

12
发表于 2015-4-24 08:35:57 | 只看该作者
谢谢分享,支持。

出0入0汤圆

13
发表于 2015-4-24 08:40:43 | 只看该作者
牛。。。。。。
顶顶。
IAP参考一下。

出0入0汤圆

14
发表于 2015-4-24 08:44:44 | 只看该作者
哈哈  好东西来的  顶起啦!

出0入0汤圆

15
发表于 2015-4-24 08:52:56 | 只看该作者
这个可是好东西,MK

出0入0汤圆

16
发表于 2015-4-24 09:14:21 | 只看该作者
必须顶起来,有时间研究一下

出0入0汤圆

17
发表于 2015-4-24 09:20:01 | 只看该作者
mark一下,呵呵,flash 存储。

出10入0汤圆

18
发表于 2015-4-24 09:38:45 | 只看该作者
看了楼主的代码,我感觉我没学过C语言一样......

出0入0汤圆

19
发表于 2015-4-24 09:40:35 | 只看该作者
支持开源,早就在OSC上关注这个项目了~

出0入0汤圆

20
发表于 2015-4-24 09:48:45 | 只看该作者
sunnydragon 发表于 2015-4-24 07:49
存到Flash里,断电不就不会丢失了。

呵呵,肯定是存在flash了,在存一半的时候突然掉电有什么机制??

出0入0汤圆

21
发表于 2015-4-24 10:07:31 | 只看该作者
谢谢分享!!!

出0入0汤圆

22
发表于 2015-4-24 10:16:20 | 只看该作者
支持                     

出20入70汤圆

23
发表于 2015-4-24 10:28:05 | 只看该作者
sunnydragon 发表于 2015-4-24 07:54
把结构体里的成员在存储时转换为字符串类型再进行保存。开机后读取对应的字符串,再用字符串转整形(atoi) ...

多谢回复!
我试试看!

出0入0汤圆

24
发表于 2015-4-24 13:12:59 | 只看该作者
谢谢分享!!!!!!

出0入0汤圆

25
发表于 2015-4-24 13:27:20 | 只看该作者
谢谢楼主  

出0入0汤圆

26
发表于 2015-4-24 14:29:27 | 只看该作者
收下了,谢谢

出0入0汤圆

27
发表于 2015-4-24 14:55:27 | 只看该作者
谢谢分享!!!!!!!!!!!!

出0入0汤圆

28
发表于 2015-4-24 15:17:11 | 只看该作者
很不错,谢谢分享。

出0入0汤圆

29
发表于 2015-4-24 15:44:41 | 只看该作者
很牛,谢谢分享

出0入0汤圆

30
发表于 2015-4-24 15:46:47 | 只看该作者
谢谢分享

出0入198汤圆

31
 楼主| 发表于 2015-4-24 21:18:26 | 只看该作者
PIC16F54 发表于 2015-4-24 09:40
支持开源,早就在OSC上关注这个项目了~

多谢关注,欢迎反馈意见哈~

出0入198汤圆

32
 楼主| 发表于 2015-4-24 21:22:40 | 只看该作者
soosqt 发表于 2015-4-24 09:48
呵呵,肯定是存在flash了,在存一半的时候突然掉电有什么机制??

你说的是掉电保护机制~这个有在接下来的开发计划中的~

出0入0汤圆

33
发表于 2015-4-24 22:19:53 | 只看该作者
挺高级的样子,以后有用

出0入0汤圆

34
发表于 2015-4-24 22:22:48 | 只看该作者
谢谢分享!!!

出0入4汤圆

35
发表于 2015-4-24 22:48:25 来自手机 | 只看该作者
闪存库,有用

出0入0汤圆

36
发表于 2015-4-24 23:11:26 | 只看该作者
有用,收藏了,闪存库

出0入0汤圆

37
发表于 2015-4-25 04:28:19 来自手机 | 只看该作者
收藏     

出0入0汤圆

38
发表于 2015-4-25 08:56:41 | 只看该作者
太好了,非常感谢分享,辛苦了!

出0入76汤圆

39
发表于 2015-4-25 10:25:30 | 只看该作者
呵呵, 不错, 这个必须支持, 先学习一下,后续有机会准备试用

出0入0汤圆

40
发表于 2015-4-25 11:55:35 | 只看该作者
这个库移植到C2000系列 DSP方便不?

出0入0汤圆

41
发表于 2015-4-25 12:37:05 | 只看该作者
你好
看到了demo中,flash_set_env("boot_times", c_new_boot_times);  这一行是先擦擦然后在写入吧。

因为之前了解到stm32 必须要擦除,然后才可以写入。我想确定的是你这个函数会自动先擦除然后再写入数据吗?还是说要自己先擦除?

出0入198汤圆

42
 楼主| 发表于 2015-4-25 18:51:37 | 只看该作者
zmgo 发表于 2015-4-25 11:55
这个库移植到C2000系列 DSP方便不?

请看下/flash/port/flash_port.c文件中的移植接口,同时可以对比下/demo下的已移植好的其余平台例子。
Github 可以直接看到Markdown格式的中文移植API介绍。要是还有问题,可以再联系我~

出0入198汤圆

43
 楼主| 发表于 2015-4-25 18:56:50 | 只看该作者
cs128815 发表于 2015-4-25 12:37
你好
看到了demo中,flash_set_env("boot_times", c_new_boot_times);  这一行是先擦擦然后在写入吧。

flash_set_env只是修改内存中存放的环境变量。
真正保存环境变量方法是flash_save_env,里面自带先擦写后写入的功能,想一些“写平衡”的功能也在里面。
建议仔细阅读下 中文API说明文档,里面都有介绍的。

出0入0汤圆

44
发表于 2015-4-25 23:13:41 | 只看该作者
一直在追赶,从未敢放弃。

出0入0汤圆

45
发表于 2015-5-28 12:47:28 | 只看该作者
发现你的一个bug.
size_t flash_get_env_total_size(void) {
    /* must be initialized */

    return FLASH_USER_SETTING_ENV_SIZE;
}
应该 return FLASH_ENV_SECTION_SIZE 才对,因为*env_total_size = FLASH_ENV_SECTION_SIZE;

出0入198汤圆

46
 楼主| 发表于 2015-5-28 14:24:53 | 只看该作者
cargle 发表于 2015-5-28 12:47
发现你的一个bug.
size_t flash_get_env_total_size(void) {
    /* must be initialized */

可以看下我在flash_env_init里面的注释


EasyFlash自带两种模式的。
常规模式下:FLASH_USER_SETTING_ENV_SIZE = FLASH_ENV_SECTION_SIZE
磨损平衡模式下:FLASH_USER_SETTING_ENV_SIZE FLASH_ENV_SECTION_SIZE,因为需要留出额外的空间实现磨损平衡功能。

本帖子中包含更多资源

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

x

出0入0汤圆

47
发表于 2015-5-28 19:38:05 来自手机 | 只看该作者
不错有机会看看均衡机制

出0入0汤圆

48
发表于 2015-6-20 17:47:28 | 只看该作者
这个如果要支持外部spi 接口的flash 吗?

出0入198汤圆

49
 楼主| 发表于 2015-6-20 22:07:09 | 只看该作者
cs128815 发表于 2015-6-20 17:47
这个如果要支持外部spi 接口的flash 吗?

支持外部Flash的,只需修改移植文件中的Flash初始化、擦除、写入、读取方法即可。

出0入10汤圆

50
发表于 2015-9-1 17:55:29 | 只看该作者
我是想实现这个功能,不知道能不能实现!boss说他开发手机的时候是可以实现的!
“一个可穿戴设备在调试或者发给用户之后,可能会产生死机、运行故障等这些状况,我们工程师要收集这些死机的信息并进行分析”

出0入0汤圆

51
发表于 2015-9-1 19:01:35 | 只看该作者
马克一个,顶楼主的作品

出0入198汤圆

52
 楼主| 发表于 2015-9-1 19:55:32 | 只看该作者
10xjzheng 发表于 2015-9-1 17:55
我是想实现这个功能,不知道能不能实现!boss说他开发手机的时候是可以实现的!
“一个可穿戴设备在调试或 ...

完全可以实现的,我的产品也是同样的需求,你可以再仔细了解下这个开源项目,试用下里面的Demo。

出10入95汤圆

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

本版积分规则

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

GMT+8, 2024-5-3 09:41

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

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