文章对应视频教程:
暂无,可以关注我的B站账号等待更新。
1、引言
在当今数据驱动的时代,高效可靠的数据存储与管理对于嵌入式系统及物联网(IoT)应用至关重要。FlashDB数据库以其轻量级、高性能和低功耗的特性,在资源有限的嵌入式环境中脱颖而出。
由于最近需要在项目上进行日志存储,所以选择FlashDB的ts数据进行日志存储。
今天在标准ANSI C环境中进行验证。
2、环境准备
首先在下载FlashDB下载源码 FlashDB开源分支。
选择2.1标签进行下载,下载后解压。
老规矩,创建一个cmake+kconfig的工程(看我往期的帖子)。
将FlashDB的代码已到工程中,具体的文件分布如下图:
3、修改驱动
FlashDB依赖的是flash的FAL层接口,我们需要修改source\flashDB\fal\fal_flash_port.c
文件,完善驱动接口,让FlashDB数据库能运行在内存中,用于验证。
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2018-01-26 armink the first version
*/
#include <fal.h>
// #ifdef FAL_USING_SFUD_PORT
// #ifdef RT_USING_SFUD
// #include <spi_flash_sfud.h>
// #endif
#ifndef FAL_USING_NOR_FLASH_DEV_NAME
#define FAL_USING_NOR_FLASH_DEV_NAME "norflash0"
#endif
static int init(void);
static int read(long offset, uint8_t *buf, size_t size);
static int write(long offset, const uint8_t *buf, size_t size);
static int erase(long offset, size_t size);
char fbuff[1 * 1024 * 1024] = {
0};
struct fal_flash_dev nor_flash0 =
{
.name = FAL_USING_NOR_FLASH_DEV_NAME