专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
【升级】嵌入式Flash闪存库EasyFlash,可以直接保存日志了
2019-12-14 12:52
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
25116
99
100
EasyFlash
是一款开源的轻量级嵌入式Flash存储器库,主要为MCU(Micro Control Unit)提供便捷、通用的上层应用接口,使得开发者更加高效实现基于的Flash存储器常见应用开发。该库目前提供
三大实用功能
:
Env
让变量轻松实现掉电保存,支持 写平衡 模式,无需担心变量长度、磨损平衡等问题
使用 键值对(key-value) 方式将变量存储到Flash中。在产品上,能够更加简捷的实现
设定参数
或
运行日志
等信息掉电保存的功能。
IAP
在线升级再也不是难事儿
该库封装了IAP(In-Application Programming)功能常用的接口,支持CRC32校验,同时支持Bootloader及Application的升级。
(新增)Log
无需文件系统,日志可直接存储在Flash上
非常适合应用在小型的不带文件系统的产品中。同时配合
EasyLogger
(我开源的超轻量级、高性能C日志库,它提供与
EasyFlash
的无缝接口)一起使用,轻松实现日志的Flash存储功能。
更多详细介绍,点击:
https://github.com/armink/EasyFlash
原帖:
http://www.amobbs.com/thread-5613261-1-1.html
更新日志
V1.06.10
新增 Flash存储日志功能,无需文件系统的支持;
删除 用户以前需要自定义的types.h头文件,全部采用C99自带头文件,降低移植复杂度;
增加 C++ 编译器的支持;
增加 环境变量同步锁,提升库在并发量较大的环境下的稳定性;
修复 部分bug;
下载方式
Github:
https://github.com/armink/EasyFlash
本坛下载:
EasyFlash-V1.06.10.zip
(6.9 MB, 下载次数: 344)
2015-6-10 19:18 上传 点击文件名下载附件
EasyFlash-V1.06.10
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
99条回答
qq302011
2019-12-25 14:14
本帖最后由 qq302011 于 2015-9-20 11:04 编辑
能否添加一些对相应的宏定义的详细说明,比方说FLASH_ENV_SECTION_SIZE等,在使用中还是有些不太确定,比方说由于F407的FLASH是1M字节,前面几个SECTOR的大小较小,为了节省空间我需要把EASYFLASH使用到的空间定义在这些前面这几个SECTOR,
地址如下
0X08000000-0x08003fff //程序空间
0X08004000-0X0800bfff //EASYFLASH使用
0x0800c000-0X0800ffff//自定义FLASH,我自己坐特殊使用
0X08010000-0x080fffff//程序空间
我不太确定使用环境变量之后,环境变量最大的使用地址会不会超过我的FLASH定义进入我的自定义地址空间,请楼主解答,谢谢
我现在的定义如下:
#define FLASH_ENV_USING_WEAR_LEVELING_MODE
//#define FLASH_ENV_USING_NORMAL_MODE
#define FLASH_ENV_START_ADDR (FLASH_BASE + 16 * 1024) /* on the chip position: 256KB */
/* the minimum size of flash erasure */
#define FLASH_ERASE_MIN_SIZE (16 * 1024) /* it is 128K for compatibility */
#ifdef FLASH_ENV_USING_WEAR_LEVELING_MODE
/* ENV section total bytes size in wear leveling mode. */
#define FLASH_ENV_SECTION_SIZE (2 * FLASH_ERASE_MIN_SIZE)/* 512K */
#else
/* ENV section total bytes size in normal mode. It's equal with FLASH_USER_SETTING_ENV_SIZE */
#define FLASH_ENV_SECTION_SIZE (FLASH_USER_SETTING_ENV_SIZE)
#endif
加载中...
查看其它99个回答
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
能否添加一些对相应的宏定义的详细说明,比方说FLASH_ENV_SECTION_SIZE等,在使用中还是有些不太确定,比方说由于F407的FLASH是1M字节,前面几个SECTOR的大小较小,为了节省空间我需要把EASYFLASH使用到的空间定义在这些前面这几个SECTOR,
地址如下
0X08000000-0x08003fff //程序空间
0X08004000-0X0800bfff //EASYFLASH使用
0x0800c000-0X0800ffff//自定义FLASH,我自己坐特殊使用
0X08010000-0x080fffff//程序空间
我不太确定使用环境变量之后,环境变量最大的使用地址会不会超过我的FLASH定义进入我的自定义地址空间,请楼主解答,谢谢
我现在的定义如下:
#define FLASH_ENV_USING_WEAR_LEVELING_MODE
//#define FLASH_ENV_USING_NORMAL_MODE
#define FLASH_ENV_START_ADDR (FLASH_BASE + 16 * 1024) /* on the chip position: 256KB */
/* the minimum size of flash erasure */
#define FLASH_ERASE_MIN_SIZE (16 * 1024) /* it is 128K for compatibility */
#ifdef FLASH_ENV_USING_WEAR_LEVELING_MODE
/* ENV section total bytes size in wear leveling mode. */
#define FLASH_ENV_SECTION_SIZE (2 * FLASH_ERASE_MIN_SIZE)/* 512K */
#else
/* ENV section total bytes size in normal mode. It's equal with FLASH_USER_SETTING_ENV_SIZE */
#define FLASH_ENV_SECTION_SIZE (FLASH_USER_SETTING_ENV_SIZE)
#endif
一周热门 更多>