关于kvdb和tsdb分区问题,测试发现,kvdb(一般比较小)最好放在tsdb的前面,这样kvdb的初始化耗时少,通过打印迭代器函数的addr发现了一些端倪,比如测试分区如下:
kvdb的起始地址是0x00200000,但打印迭代器的初始化地址是0x00000000;也就是说迭代器是从tsdb的起始地址查询到kvdb的结束地址0x00202000;我通过修改以下代码(注释部分为原始代码),可以较少迭代次数,但flash重新格式化后会有“Partition read error! Partition address out of bound.”错误,因为对flashDB的逻辑不清楚,所以又将代码还原。
硬件软件环境
问题
关于kvdb和tsdb分区问题,测试发现,kvdb(一般比较小)最好放在tsdb的前面,这样kvdb的初始化耗时少,通过打印迭代器函数的addr发现了一些端倪,比如测试分区如下: kvdb的起始地址是0x00200000,但打印迭代器的初始化地址是0x00000000;也就是说迭代器是从tsdb的起始地址查询到kvdb的结束地址0x00202000;我通过修改以下代码(注释部分为原始代码),可以较少迭代次数,但flash重新格式化后会有“Partition read error! Partition address out of bound.”错误,因为对flashDB的逻辑不清楚,所以又将代码还原。