xql923
xql923
朱先生你好,感谢您的FlashDB! 接上一条问题继续,我找到问题的根本原因,在于我的驱动中读取延时时间太短导致读取数据不全而出现读取错误。 但是我在排查故障的过程中发现FlashDB的实现程序中,从上层调用下一层函数的过程中,很多不判断函数返回值,而是直接返回,比如: 1、fdb_kvdb.c源文件get_kv函数中,第588行_fdb_flash_read((fdb_db_t)db, kv.addr.value, (uint32_t *) value_buf, read_len)语句,没有判断是否读取正确,而是直接返回。 2、fdb_utils.c源文件中_fdb_flash_read函数中,第256行fal_partition_read(db->storage.part, addr, (uint8_t *) buf, size)也没有判断返回,而是直接返回FDB_NO_ERR。 3、fdb_kvdb.c文件中,第530行find_kv(fdb_kvdb_t db, const char *key, fdb_kv_t kv)函数中调用read_kv(db, kv)也没有判断返回,而是直接返回true。 4、例程中FlashDB移植的read(long offset, uint8_t *buf, size_t size)函数,也没有判断返回数值,而是直接返回四则。 还有很多处,没有判断函数执行返回数值。...
朱工您好,按照你的提示:就是入库记录时间不能比上一个记录的时间小,那如果系统时钟错误,就必须向前调整,比如当前是10:00,调整到9:00,那么就会出现当前的记录时间比上一个记录的时间小,请问,程序应该如何处理呢?
朱工您好,这个软件非常好用,谢谢! 请问,该软件的掉电保存是如何考虑的?如果在写入的时候掉电,该软件如何处理呢?