amobbs.com 阿莫电子技术论坛

标题: 【开源】FlashDB 新增 STM32F10X/F4XX 系列 demo [打印本页]

作者: sunnydragon    时间: 2020-7-14 22:31
标题: 【开源】FlashDB 新增 STM32F10X/F4XX 系列 demo
本帖最后由 sunnydragon 于 2020-7-14 22:35 编辑

FlashDB 是一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。与传统的基于文件系统的数据库不同,FlashDB 结合了 Flash 的特性,具有较强的性能及可靠性。并在保证极低的资源占用前提下,尽可能延长 Flash 使用寿命。
FlashDB 提供两种数据库模式:
更多介绍详见:https://github.com/armink/FlashDB

近期,FlashDB 新增更新如下:


目前已经有不少开发者正在使用 FlashDB  在项目中进行实际测试,欢迎更多小伙伴前来体验

本坛下载:[attach]520487[/attach]
GitHub 最新版:https://github.com/armink/FlashDB






作者: plc_avr    时间: 2020-7-15 07:43
非常好的应用,顶一下~~~
作者: leiyitan    时间: 2020-7-15 08:55
跟随大神的脚步…
早都成为项目的标配了
作者: ffbiao    时间: 2020-7-15 09:00
请问能否移植到操作spi fram?
作者: 小溪    时间: 2020-7-15 09:23
留位占座,测试试用一下看看。
作者: armok.    时间: 2020-7-15 13:12
打赏50汤圆!

庆祝论坛“打赏”功能实施, 现在开始发技术主题,可以获得打赏
https://www.amobbs.com/thread-5735948-1-1.html
作者: sunnydragon    时间: 2020-7-15 13:47
armok. 发表于 2020-7-15 13:12
打赏50汤圆!

庆祝论坛“打赏”功能实施, 现在开始发技术主题,可以获得打赏

好政策~~多谢莫大支持
作者: 蛋定    时间: 2020-7-15 14:01
好东西,收藏备用
作者: coolhorse    时间: 2020-7-15 14:24
是个好东西,正好有个项目考虑使用,请问能支持新增,删除,排序吗,并且时间性能怎么样
作者: waterx3    时间: 2020-7-15 15:50
同问,能否针对铁电给个例子。另外,如果定义分区发生变化时,需要怎么做?
作者: 小溪    时间: 2020-7-15 17:28
本帖最后由 小溪 于 2020-7-15 17:30 编辑

有这么一个需求,不知道用这个flashDB能否满足?记录大概20000笔记录吧,一条记录会记录有10来个变量数据记录,每次设备在线是需要上传记录,如果脱机需要区别未上传的记录,所有记录在开辟的存储区内循环存储循环覆盖,上传和未上传有区别标志来识别,当在线时检索到未上传记录,按时间先后顺序上传。不知道对于20000条记录这款轻量级的嵌入式数据库检索性能如何,时间快慢如何?
作者: sunnydragon    时间: 2020-7-15 19:32
小溪 发表于 2020-7-15 17:28
有这么一个需求,不知道用这个flashDB能否满足?记录大概20000笔记录吧,一条记录会记录有10来个变量数据记 ...

这个功能需求没问题,性能需求也没问题
作者: sunnydragon    时间: 2020-7-15 19:33
coolhorse 发表于 2020-7-15 14:24
是个好东西,正好有个项目考虑使用,请问能支持新增,删除,排序吗,并且时间性能怎么样 ...

时间性能绝对杠杠的,查询的数据默认就是按照时间排序的
作者: jaywen    时间: 2020-7-15 21:30
sunnydragon 发表于 2020-7-15 19:33
时间性能绝对杠杠的,查询的数据默认就是按照时间排序的

有备份的功能吗?比如一组关键参数 读取失效后 用备用区替代
作者: 小溪    时间: 2020-7-16 08:55
sunnydragon 发表于 2020-7-15 19:33
时间性能绝对杠杠的,查询的数据默认就是按照时间排序的

最差的情况是查完20000条记录,最后一条就是所要的记录,不知道测试时间是多长?另外其实查询条件不只是时间来检索,还要附加一个未上传的标志位作为限制条件,另外还没有完全看懂和熟练使用这个嵌入式轻量级数据库,如果记录10个变量,是不是表结构还需要修改一下,改动有多大,仅仅是修改增加定义的表字段而不需要动别的地方吗?
作者: sunnydragon    时间: 2020-7-16 09:32
jaywen 发表于 2020-7-15 21:30
有备份的功能吗?比如一组关键参数 读取失效后 用备用区替代

读取失效是什么意思?

FlashDB 有掉电保护功能,断电时保存失败了,会自动还原之前的最后一次正确记录
作者: sunnydragon    时间: 2020-7-16 09:36
小溪 发表于 2020-7-16 08:55
最差的情况是查完20000条记录,最后一条就是所要的记录,不知道测试时间是多长?另外其实查询条件不只是 ...
  1. 最差的情况是查完20000条记录,最后一条就是所要的记录,不知道测试时间是多长
复制代码


这块可以看下 FlashDB GitHub readme 上的测试数据

  1. 另外其实查询条件不只是时间来检索,还要附加一个未上传的标志位作为限制条件,
复制代码


建议这部分在真机上测试一下,示例代码及 demo 在仓库里都有的,开箱即用

  1. 另外还没有完全看懂和熟练使用这个嵌入式轻量级数据库,如果记录10个变量,是不是表结构还需要修改一下,改动有多大,仅仅是修改增加定义的表字段而不需要动别的地方吗?
复制代码


FlashDB 目前对于表结构没有太多依赖,非常灵活,改动很小,欢迎试用
作者: sunnydragon    时间: 2020-7-16 09:38
waterx3 发表于 2020-7-15 15:50
同问,能否针对铁电给个例子。另外,如果定义分区发生变化时,需要怎么做? ...

暂时没有铁电的例子,你可以先用片上 flash 体验一下功能

没有太理解你说的分区变化是什么意思
作者: sunnydragon    时间: 2020-7-16 09:38
ffbiao 发表于 2020-7-15 09:00
请问能否移植到操作spi fram?

当然可以的
作者: waterx3    时间: 2020-7-16 09:53
sunnydragon 发表于 2020-7-16 09:38
暂时没有铁电的例子,你可以先用片上 flash 体验一下功能

没有太理解你说的分区变化是什么意思 ...

测试时建立一个分区用来测试功能,然后根据实际需要增加分区,改变分区大小。
作者: sunnydragon    时间: 2020-7-16 10:20
waterx3 发表于 2020-7-16 09:53
测试时建立一个分区用来测试功能,然后根据实际需要增加分区,改变分区大小。 ...

分区不予许动态修改的,电脑上也是这样的,除非备份下数据,重新格式化,搬运过去
作者: jaywen    时间: 2020-7-16 10:26
sunnydragon 发表于 2020-7-16 09:32
读取失效是什么意思?

FlashDB 有掉电保护功能,断电时保存失败了,会自动还原之前的最后一次正确记录 ...

就是比如 某一次读取flash的值 crc错误  那么数据应该用备份区的数据替代
作者: coolhorse    时间: 2020-7-16 14:47
printenv无法打印中文,如key=10086,value=中国移动通讯
作者: sunnydragon    时间: 2020-7-17 14:38
jaywen 发表于 2020-7-16 10:26
就是比如 某一次读取flash的值 crc错误  那么数据应该用备份区的数据替代

这种功能挺简单的,没有问题
作者: sunnydragon    时间: 2020-7-17 14:39
coolhorse 发表于 2020-7-16 14:47
printenv无法打印中文,如key=10086,value=中国移动通讯

修改你使用终端工具的字符编码
作者: jia_xuan    时间: 2020-7-20 15:52
希望楼主抽时间再出个STM32L系列的demo
作者: cooltommy    时间: 2020-7-23 15:54
请问楼主你的文档在哪里找?想用但是没看懂
作者: flamma    时间: 2020-7-23 17:47
TSDB要删除其中某条怎么办?好像只看到全部清除的接口。
作者: sunnydragon    时间: 2020-7-24 15:37
cooltommy 发表于 2020-7-23 15:54
请问楼主你的文档在哪里找?想用但是没看懂

目前还没有文档,正在准备中,可以直接看下示例文件,里面有详细的注释
作者: sunnydragon    时间: 2020-7-24 15:39
flamma 发表于 2020-7-23 17:47
TSDB要删除其中某条怎么办?好像只看到全部清除的接口。

可以使用修改状态的 API 进行操作
作者: Jmhh247    时间: 2020-7-24 16:13
有计划推出stm32H74x 的qspiflash用的demo吗
作者: citroen988    时间: 2020-7-25 15:18
linux demo 来一个~
作者: genhao2    时间: 2020-7-25 17:19
很不错,谢谢分享
作者: 血刃修罗    时间: 2020-8-4 00:49
sunnydragon 发表于 2020-7-16 09:38
暂时没有铁电的例子,你可以先用片上 flash 体验一下功能

没有太理解你说的分区变化是什么意思 ...

如果在铁电上使用?   有哪些需要注意的地方?
作者: albertwu    时间: 2020-8-7 14:16
感谢,在嵌入式的kv这一块,不用东奔西走了
作者: nds_shenzhen    时间: 2020-8-7 18:21
  stm32g0 系列的 不知道是否可用
作者: motata2006    时间: 2020-9-13 20:47
早就想移入项目了,非常感谢。
作者: hhxb    时间: 2021-3-2 17:02
大佬牛逼
作者: 朝霞漫天    时间: 2021-3-3 18:32
学习一下
作者: fcmer2016    时间: 2021-7-24 23:26
sunnydragon 发表于 2020-7-24 15:39
可以使用修改状态的 API 进行操作

我看到文档说只是设置了删除标志,如何和KVDB一样删除,并收集垃圾?
作者: sunnydragon    时间: 2021-7-25 17:28
fcmer2016 发表于 2021-7-24 23:26
我看到文档说只是设置了删除标志,如何和KVDB一样删除,并收集垃圾?

这个在循环写入后会覆盖
作者: luoji    时间: 2021-7-31 20:27
能增加对esp32的支持吗
作者: sunnydragon    时间: 2021-8-12 18:10
luoji 发表于 2021-7-31 20:27
能增加对esp32的支持吗

目前有支持 esp8266 的,都是基于 idf 的,应该都适用的吧?
作者: yuguoyu123456    时间: 2021-9-5 21:25
咋用啊,有没有前辈解释一下




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4