Open Samwuzhitao opened 3 years ago
芯片:stm32103RC 写粒度:32 出错的条件直接执行这个 HAL_FLASH_Program 函数直接报错
执行这个 HAL_FLASH_Program 函数直接报错
这个条件是什么,比如不支持再次写入,所以报错?
这个没有继续追踪这个数据写出错的问题,只是我发现,在GC过程中,不停的按复位键,这个错误信息会不停的出现 [FlashDB][kv][env] (../packages/FlashDB-v1.0.0/src/fdb_kvdb.c:1043) The remain empty sector is 3, GC threshold is 4. [E/drv.flash] HAL_FLASH_Program 写数据出错 [E/FAL] (fal_partition_write:437) Partition write error! Flash device(onchip_flash) write error!, 我这边复现这个问题,增加部分调试信息,
嗯,这块建议也咨询一下 ST ,深入确认一下,目前来看,这种情况,既然写对了,上不应该提示错误
// 回收扇区将数据存放在 FDB_SECTOR_STORE_UNUSED 未使用的扇区 sector_iterator(db, §or, FDB_SECTOR_STORE_UNUSED, db, NULL, do_gc, false);
// 且存储状态为 FDB_SECTOR_STORE_EMPTY FDB_SECTOR_STORE_UNUSED 的扇区总和 // arg1 = db 数据库指针 // arg2 = NULL static bool do_gc(kv_sec_info_t sector, void arg1, void arg2) { struct fdb_kv kv; fdb_kvdb_t db = arg1;
}
之前一直遇到的问题,添加这个限制条件后就没有再出现过报错信息 [FlashDB][kv][env] (../packages/FlashDB-v1.0.0/src/fdb_kvdb.c:1043) The remain empty sector is 3, GC threshold is 4. [E/drv.flash] HAL_FLASH_Program 写数据出错 [E/FAL] (fal_partition_write:437) Partition write error! Flash device(onchip_flash) write error!