搜索
bottom↓
回复: 99

【开源】EasyFlash V5.0 正式更名为 FlashDB

  [复制链接]

出0入0汤圆

发表于 2020-6-13 22:26:25 | 显示全部楼层
麻烦帮忙看看flashdb配置是否正确。
const struct fal_flash_dev bt832_onchip_flash =
{
    .name    = "bt832_onchip",
    .addr      = 0x70000,
    .len        = 0x4000,
    .blk_size   = 4*1024,
    .ops        = {NULL, read, write, erase},
    .write_gran = 32
};
#define FAL_PART_TABLE                                                                                   \
{                                                                                                                       \
    {FAL_PART_MAGIC_WORD,  "fdb_kvdb1",    "bt832_onchip",   0, 8*1024, 0},      \
}
实际的flash地址是 0-0x7 ffff 其中(0-0x26000)系统占用;0x26000-0x66000用户代码占用;0x66000-0x78000用作参数存储(这一块映射作为flashdb存储);
现在使用上面配置,执行
char * return_value = fdb_kv_get(&kvdb, "username");
/* the return value is NULL when get the value failed */
if (return_value != NULL) {
              strncpy(temp_data, return_value, sizeof(temp_data));
            LOG("get the 'username' value is: %s\n", temp_data);
        }
        else
        {
            LOG("fdb_kv_set_str");
//        /* run string KV samples */
            fdb_kv_set_str(&kvdb,"username",temp_data,strlen(temp_data));
        }
uint32_t fdb_kv_set_str(fdb_kvdb_t kvdb,const char *key, const void *buf, size_t size)
{
        #if(FLASHDB)
            fdb_kv_set(kvdb, key, buf);
        #endif
        return 0;
}
直接j进hardfault.

easyflash4.0是正常的。

谢谢。

出0入0汤圆

发表于 2020-6-14 14:45:35 | 显示全部楼层
sunnydragon 发表于 2020-6-14 10:05
感觉驱动的问题概率大一些,做驱动时 .addr      = 0x70000, 有没有用到?建议查看下 读写擦 函数的具体 ...

好的谢谢。。。

出0入0汤圆

发表于 2020-6-16 22:46:40 来自手机 | 显示全部楼层
sunnydragon 发表于 2020-6-15 19:39
老兄说的对~~

log 算是应用,最上层的东西,底层的存储介质,可以是 EasyFlash ,也可以是 FlashDB,还 ...

谢谢版主!问题找到了。是lock和unlock两个函数,它里面禁止中断和使能中断导致。请问一下,带着仿真器打断点可以看到完整日志,但是不调试,日志就不全。log使用的是easylog通过rtt输出。另外问一下,kvdb插入和查找速度如何?

出0入0汤圆

发表于 2020-6-25 17:31:13 | 显示全部楼层
版主你好
请教下是否直接可以调用fdb_kv_set_blob、fdb_kv_get_blob两个函数,是否支持各种类型,如string, int, char,short , 或者组合起来的类型,结构体里面4种类型都有。
FLASHDB有更新吗?
谢谢

出0入0汤圆

发表于 2020-8-20 17:42:06 | 显示全部楼层
请问下flashdb  tsbd 里面
count = fdb_tsl_query_count(tsdb, from_time, to_time, FDB_TSL_WRITE);
fdb_tsl_iter(tsdb, set_status_cb, tsdb);
这两个函数是什么功能呢?
查询的时候为什么用FDB_TSL_WRITE?
删除用FDB_TSL_DELETED吗?
FDB_TSL_USER_STATUS1和FDB_TSL_USER_STATUS2有什么作用??

再次谢谢楼主。

出0入0汤圆

发表于 2020-8-22 21:40:13 | 显示全部楼层
sunnydragon 发表于 2020-8-21 20:52
有体验 demo 的效果了吗?

嗯,体验了,好用。跟上一版有些接口变了。
就是数据库的 增( 删 改)查,删除不知道如何测。
楼主厉害。

出0入0汤圆

发表于 2020-11-25 14:55:17 | 显示全部楼层
请教下楼主,tsdb在初始化后调用 tsdb_sample(&tsdb);运行是正常的,从日志看,数据读写是ok的。   
但是如果初始化后,注释掉tsdb_sample;在其他地方调用 tsdb_sample(&tsdb);    读写flash会出错。
试过kvdb这么操作没问题。
谢谢帮忙解答一下。
        fdb_tsdb_control(&tsdb, FDB_TSDB_CTRL_SET_LOCK, lock);
        fdb_tsdb_control(&tsdb, FDB_TSDB_CTRL_SET_UNLOCK, unlock);
        /* Time series database initialization
         *
         *       &tsdb: database object
         *       "log": database name
         * "fdb_tsdb1": The flash partition name base on FAL. Please make sure it's in FAL partition table.
         *              Please change to YOUR partition name.
         *    get_time: The get current timestamp function.
         *         128: maximum length of each log
         *        NULL: The user data if you need, now is empty.
         */
        result = fdb_tsdb_init(&tsdb, "record", "fdb_tsdb1", get_time, 32, NULL);
        /* read last saved time for simulated timestamp */
        fdb_tsdb_control(&tsdb, FDB_TSDB_CTRL_GET_LAST_TIME, &_TimeCount_250ms);

        if (result != FDB_NO_ERR) {
            return -1;
        }

        /* run TSDB sample */
//        tsdb_sample(&tsdb);
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 12:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表