Closed xushenghao closed 6 months ago
朱工,您好! 项目中用到了您的FlashDB的KVDB功能。 FlashDB版本:2.1.0 3个存储芯片:M95512,大小65536,块2048 kv的值最大是1100,最小32,一共4个kv 测试过程:循环写,空间写满后会触发FDB_SAVED_FULL,再调用一次写入后空间才释放成功
fdb_kvdb.c:1241 处触发 else if (already_gc) { FDB_INFO("Error: Alloc an KV (size %" PRIuLEAST16 ") failed after GC. KV full.\n", kv_size); db->gc_request = false; }
经过测试后发现,再次执行fdb_kv_set_blob可以写入,因为使用的是eeprom,存储空间小,所以定义的block只有2048。 因为KVDB有自动回收的策略,所以我不知道是不是我使用的方法上有什么问题。请朱大大指点!!!
想了下应该是3个eeprom芯片在同一个文件系统上是无法工作的,需要做一些处理,这个问题暂时先关闭了
朱工,您好! 项目中用到了您的FlashDB的KVDB功能。 FlashDB版本:2.1.0 3个存储芯片:M95512,大小65536,块2048 kv的值最大是1100,最小32,一共4个kv 测试过程:循环写,空间写满后会触发FDB_SAVED_FULL,再调用一次写入后空间才释放成功
经过测试后发现,再次执行fdb_kv_set_blob可以写入,因为使用的是eeprom,存储空间小,所以定义的block只有2048。 因为KVDB有自动回收的策略,所以我不知道是不是我使用的方法上有什么问题。请朱大大指点!!!