【相关文章导航】

[FlashDB]基于GD32纯代码裸机移植FlashDB数据库——一、介绍
[FlashDB]基于GD32纯代码裸机移植FlashDB数据库——二、移植前准备
[FlashDB]基于GD32纯代码裸机移植FlashDB数据库——三、移植SFUD
[FlashDB]基于GD32纯代码裸机移植FlashDB数据库——四、移植Fal
[FlashDB]基于GD32纯代码裸机移植FlashDB数据库——五、移植FlashDB

一、软件介绍

1.1 FlashDB

FlashDB是一款可以运行在MCU上的轻量级的开源嵌入式数据库,专注于提供嵌入式产品的数据存储方案。主页

1.1.1 使用场景

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

1.1.2 依赖

FlahDB数据库依赖Fal硬件抽象层。

1.2 Fal

FAL (Flash Abstraction Layer) Flash 抽象层,是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API 。主页

1.2.1 特性

  • 支持静态可配置的分区表,并可关联多个 Flash 设备;
  • 分区表支持 自动装载 。避免在多固件项目,分区表被多次定义的问题;
  • 代码精简,对操作系统 无依赖 ,可运行于裸机平台,比如对资源有一定要求的 Bootloader;
  • 统一的操作接口。保证了文件系统、OTA、NVM等对 Flash 有一定依赖的组件,底层 Flash 驱动的可重用性;
  • 自带基于 Finsh/MSH 的测试命令,可以通过 Shell 按字节寻址的方式操作(读写擦) Flash 或分区,方便开发者进行调试、测试;

1.2.2 依赖

Fal硬件抽象层基于SFUD万能驱动库实现。

1.3 SFUD

SFUD是一款开源的串行 SPI Flash 通用驱动库。主页

1.3.1 特性

  • 支持 SPI/QSPI 接口
  • 面向对象(同时支持多个 Flash 对象)
  • 可灵活裁剪
  • 扩展性强

二、硬件介绍

硬件平台:GD32L233RCT6
Flash:GD25Q32
IDE:Keil 5.36

说明:

  1. 仅使用外置Flash。
  2. 使用标准双线SPI,未使用QSPI。
  3. 基于裸机移植。

三、移植步骤

  1. 移植前准备;
  2. 移植SFUD万能SPI Flash驱动库;
  3. 移植Fal Flash抽象层;
  4. 移植FlashDB数据库。

更多推荐