我是靠谱客的博主 醉熏小伙,最近开发中收集的这篇文章主要介绍STM32HAL 移植 FlashDB 超轻量级的嵌入式数据库框架(裸机版本)概述,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

目录

 

概述

使用场景

主要特性

性能及资源占用

TSDB 性能测试1 (nor flash W25Q64)

TSDB 性能测试2 (stm32f2 onchip flash)

资源占用 (stm32f4 IAR8.20)

一、使用方法

二、STM32CubeMx配置

三、Examples

四、运行结果

五、总结


概述

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

FlashDB 提供两种数据库模式:

  • 键值数据库 :是一种非关系数据库,它将数据存储为键值(Key-Value)对集合,其中键作为唯一标识符。KVDB 操作简洁,可扩展性强。
  • 时序数据库 :时间序列数据库 (Time Series Database , 简称 TSDB),它将数据按照 时间顺序存储 。TSDB 数据具有时间戳,数据存储量大,插入及查询性能高。

使用场景

如今,物联网产品种类越来越多,运行时产生的数据种类及总量及也在不断变大。FlashDB 提供了多样化的数据存储方案,不仅资源占用小,并且存储容量大,非常适合用于物联网产品。下面是主要应用场景:

  • 键值数据库 :
    • 产品参数存储
    • 用户配置信息存储
    • 小文件管理
  • 时序数据库 :
    • 存储动态产生的结构化数据:如 温湿度传感器采集的环境监测信息,智能手环实时记录的人体健康信息等
    • 记录运行日志:存储产品历史的运行日志,异常告警的记录等

主要特性

  • 资源占用极低,内存占用几乎为 0 ;
  • 支持 多分区,多实例 。数据量大时,可细化分区,降低检索时间;
  • 支持 磨损平衡 ,延长 Flash 寿命;
  • 支持 掉电保护 功能,可靠性高;
  • 支持 字符串及 blob 两种 KV 类型,方便用户操作;
  • 支持 KV 增量升级 ,产品固件升级后, KVDB 内容也支持自动升级;
  • 支持 修改每条 TSDB 记录的状态,方便用户进行管理;

性能及资源占用

TSDB 性能测试1 (nor flash W25Q64)

msh />tsl bench
Append 1250 TSL in 5 seconds, average: 250.00 tsl/S, 4.00 ms/per
Query total spent 2218 (ms) for 1251 TSL, min 1, max 2, average: 1.77 ms/per

插入平均:4 ms,查询平均:1.8 ms

TSDB 性能测试2 (stm32f2 onchip flash)

msh />tsl bench
Append 13421 TSL in 5 seconds, average: 2684.20 tsl/S, 0.37 ms/per
Query total spent 1475 (ms) for 13422 TSL, min 0, max 1, average: 0.11 ms/per

插入平均:0.37 ms,查询平均:0.12 ms

资源占用 (stm32f4 IAR8.20)

    Module                  ro code  ro data  rw data
    ------                  -------  -------  -------
    fdb.o                     276      232        1
    fdb_kvdb.o              4 584      356        1
    fdb_tsdb.o              1 160      236
    fdb_utils.o               418    1 024

上面是 IAR 的 map 文件信息,可见 FlashDB 的资源占用非常低

一、使用方法

FlashDB 提供了全面的文档说明,详见:http://armink.gitee.io/flashdb/#/zh-cn/

快速访问:

  • 快速上手文档
  • 移植文档
  • 配置文档
  • API 文档

二、STM32CubeMx配置

 

三、Examples

 

四、运行结果

 
传送门->代码

参考文章:

1、http://www.mculover666.cn/posts/3066735794/
2、https://cloud.tencent.com/developer/article/1662761

 

五、总结

  好了,就介绍到此。
 

 

未完待续

最后

以上就是醉熏小伙为你收集整理的STM32HAL 移植 FlashDB 超轻量级的嵌入式数据库框架(裸机版本)概述的全部内容,希望文章能够帮你解决STM32HAL 移植 FlashDB 超轻量级的嵌入式数据库框架(裸机版本)概述所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部