Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SFUD
easyflash随着数据存储量增加,耗费时间加长
发布于 2019-03-11 15:02:21 浏览:4042
订阅该版
项目需要,每秒采集一次传感器,每次存储数据大小为32bytes,三个月数据循环覆盖;考虑使用easyflash,配置参数如下: ```c #define PKG_USING_EASYFLASH #define PKG_EASYFLASH_ENV #define PKG_EASYFLASH_ENV_AUTO_UPDATE #define PKG_EASYFLASH_ENV_VER_NUM 0 #define PKG_EASYFLASH_ERASE_GRAN 1024*1024*16 #define PKG_EASYFLASH_WRITE_GRAN_1BIT #define PKG_EASYFLASH_WRITE_GRAN 1 #define PKG_EASYFLASH_START_ADDR 0 #define PKG_EASYFLASH_DEBUG #define PKG_USING_EASYFLASH_LATEST_VERSION #define PKG_EASYFLASH_VER_NUM 0x99999 ``` 测试过程发现,随着数据量增加,耗费时间越来越长。 刚开始耗时20ms,存储到`46323/16777216`的时候耗时489ms;不知道是配置问题,还是说确实会存在这个问题
查看更多
15
个回答
默认排序
按发布时间排序
07lhluo
2024-08-06
这家伙很懒,什么也没写!
armink你好!非常有幸遇到和用上你的easyflash软件包,非常不错! 我有个想法,看你可否参考以下。 我用的是最新版本,现在就是easyflash读写接口的操作速度确实是有些瓶颈。 我粗略构思是,将扇区的管理的一系列操作(寻址、擦除、GC、搬迁、双数据备份等等),创建一个总的调用接口,暂时取名为easyflash_task_handler(), 类似于LVGL被main或者某线程调用lv_task_handler(),作为后台的服务程序。然后将ef_get_env_blob()/ef_set_env_blob()这些读写操作作为用户请求分离开来。easyflash_task_handler()响应这些读写请求。 比如有一个数据块a,在flash里面之前已经有存储过,所在区域定义为A。经过easyflash_task_handler()管理之后,已经找到可以分配另一个待写区域A'。这个A'区域完全处理ready,包括擦除这些耗时的,都在easyflash_task_handler()空闲的时候处理好,并且提供A'的起始地址。当用户程序调用ef_set_env_blob()的时候,取得A'的地址后,马上就可以开展写操作,完成后就退出。至于A'的备份操作,也可以放到easyflash_task_handler()空闲时处理。读操作也类似这样的构思。 当然,这个只是粗略构思,不知道easyflash原有的整体框架是否支持,以及估计很多其它相关联的问题没考虑在内。 如果可以按照这个构思,将easyflash_task_handler()和数据的读写分离,实现异步协同,我觉得用户数据的读写的速度将发挥到极致,极大改善速度问题,请考虑,谢谢。
armink
2019-03-11
这家伙很懒,什么也没写!
每秒都存,一小时就是 3600 个环境变量,这个确实没法做更多时间方面的优化。 你也可以试试 EasyFlash 自带的 log 功能,对于你这种数据量大的循环存储方案蛮适合。
ymh792260950
2019-03-11
这家伙很懒,什么也没写!
>每秒都存,一小时就是 3600 个环境变量,这个确实没法做更多时间方面的优化。 > >你也可以试试 EasyFlash 自 ... --- 虽然要求是每秒存储一次,有可能设备不工作的时候,这段时间数据就是空的。 log功能中, ``` ef_log_write(const uint32_t *log, size_t size); ``` 写入函数没带索引,这样读取的时候, ``` ef_log_read(size_t index, uint32_t *log, size_t size); ``` 就无法知道查询的数据对应的index位置; 要是写入的时候带index,这样子可以根据时间戳来排列存储的数据位置,这样就完美了
春和景明
2019-03-14
这家伙很懒,什么也没写!
每秒的数据都有用?如果是这样的话,我觉得还不如用sd卡,把这些个数据用一定格式保存在文件里好呢。用easyflash感觉不太合适,弄个文件系统感觉还行。
ymh792260950
2019-03-17
这家伙很懒,什么也没写!
>每秒的数据都有用?如果是这样的话,我觉得还不如用sd卡,把这些个数据用一定格式保存在文件里好呢。用easy ... --- 嗯,我也在考虑存储在sd卡里面,不过设备带屏幕,数据存储的时候耗时太长,屏幕刷新变得很慢,这也很头疼
ymh792260950
2019-07-07
这家伙很懒,什么也没写!
>每秒都存,一小时就是 3600 个环境变量,这个确实没法做更多时间方面的优化。 > >你也可以试试 EasyFlash 自 ... --- 天龙哥,请教下easyflash有没有哪个函数返回env总共有多少个变量
armink
2019-07-07
这家伙很懒,什么也没写!
>天龙哥,请教下easyflash有没有哪个函数返回env总共有多少个变量 --- 暂时没有这个 api 呢 另外,最近 EasyFlash 的速度做了很大的提升,你可以试试最新版哈
ymh792260950
2019-07-08
这家伙很懒,什么也没写!
>暂时没有这个 api 呢 >另外,最近 EasyFlash 的速度做了很大的提升,你可以试试最新版哈 > ... --- 嗯,目前用的就是4.0版本。
ymh792260950
2019-07-18
这家伙很懒,什么也没写!
>暂时没有这个 api 呢 >另外,最近 EasyFlash 的速度做了很大的提升,你可以试试最新版哈 > ... --- 天龙哥,使用内部flash已经运行10来天,挺正常的;目前在研究外部spi flash,发现读写速度非常慢,不知道是移植问题,还是哪里问题,采用sfud
armink
2019-07-18
这家伙很懒,什么也没写!
>天龙哥,使用内部flash已经运行10来天,挺正常的;目前在研究外部spi flash,发现读写速度非常慢,不知道 ... --- 检查下 SPI 驱动吧,也可以使用 sf bench 测试下性能
撰写答案
登录
注册新账号
关注者
1
被浏览
4k
关于作者
ymh792260950
这家伙很懒,什么也没写!
提问
1
回答
9
被采纳
0
关注TA
发私信
相关问题
1
【分享】如何使用 SFUD 库来操作 SPI Flash 设备
2
SFUD怎么使用
3
请教大家一下关于 SFUD 的的问题
4
移植sfud
5
使用SFUD操作FLASH
6
env使用easyflash不是3.2.4版本,而且没有type插件?
7
新增了W25X32设备成功,无法格式化
8
关于SFDP的问题
9
spi nand flash 能使用SFUD驱动吗
10
裸机SFUD问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
7
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部