ivan7wl

Results 7 comments of ivan7wl

这个技术栈比较小众呢,我也没搞过,不过开源出来也好啊,也许有人就会继续折腾~

这种情况,如果sector 0信息丢失,是不是也是可以恢复到绕回之前的状态? 如果可以的话,那么改下上电检查的判断,如果sector 0出问题,再继续检查一下sector 1,sector 1正常的话是不是就不用全擦了?

我初步研究了一下tsdb初始化流程,不知道如下修改方式是否可行: 1. 检查每个sector的interator中,如果检查失败,就format_sector()格式化,按照empty处理,继续iterator sector 2. 由于步骤1中的iterator中已经做了format,原先的check_sec_arg.check_failed检查然后tsl_format_all()的逻辑,就不再需要了

我的意思是,迭代时把header检查失败的sector,做一次format,然后走empty的分支,就不会有check_failed的情况 ```c static bool check_sec_hdr_cb(tsdb_sec_info_t sector, void *arg1, void *arg2) { struct check_sec_hdr_cb_args *arg = arg1; fdb_tsdb_t db = arg->db; if (!sector->check_ok) { FDB_INFO("Sector (0x%08" PRIu32 ") header info is...

其他的地方也有这种情况,不知道有没有风险?最好还是全面检查一下。这种未初始化的变量可能引入安全弱点,也会导致代码调试维护比较费力。

> 那对这种情况,感觉这样修改是不是就行了 > > ```c > struct kvdb_sec_info sector = { .check_ok = false }; > ``` 可以的,但是最好检查逻辑部分是否有风险。

如果我扇区8192,max_len 4096,这样不会有问题吧?