【已解决】应用层保存自定义数据的空间咨询

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
Post Reply
qianmingjun
Posts: 13

分区.png

分区表0x1C9000之后的8K,用于上电计数了,还有别的空间来保存应用层自定义的数据吗

yingtao_33
Posts: 245

Re: 应用层保存自定义数据的空间咨询

用户自定义数据可以调用kv 或者 uf 接口进行读写。示例请参考example中的kv 和 uf 的示例:viewtopic.php?t=357

qianmingjun
Posts: 13

Re: 应用层保存自定义数据的空间咨询

错误信息.png

模仿example_os_kv_common例程,增加了图中的代码,log报1和2处的错误信息,请问下是我代码里哪里忽略了

yangjie
Posts: 209

Re: 应用层保存自定义数据的空间咨询

这个时候 KV 还没有初始化成功,你可以调用 TuyaOS 提供的接口订阅 KV 初始化完成事件。像下面那样:

ty_subscribe_event(EVENT_SDK_DB_INIT_OK, "db.init", ty_app_elec_start, SUBSCRIBE_TYPE_NORMAL);

这里的 ty_app_elec_start 应替换为你的函数,这样在 KV 初始化之后就会调用 ty_app_elec_start 函数进行处理。

yangjie
Posts: 209

Re: 应用层保存自定义数据的空间咨询

example_os_kv_common 中在初始化 tuyaos 的时候就将 kv 给初始化。但产品开发包在初始化的时候为了满足部分产品快速启动的需求(KV 初始化较慢,上电先不初始化),所以会出现这个问题。下面截图是先不初始化 KV:

Snipaste_2023-09-04_14-18-38.png

上图中圈起来部分为 FALSE 时先不初始化 KV。为TRUE 时 tuya_iot_init_params 就会将 KV 给初始化了。
当为 FALSE 时,后续需手动调用 tuya_iot_kv_flash_init(NULL); 对 KV 进行初始化。所以你这里除了订阅这个事件之外也可以在 ty_app_component_init() 中对 KV 进行读写,但是需要注意 ty_app_component_init 是在 成品产测之后执行的。

qianmingjun
Posts: 13

Re: 应用层保存自定义数据的空间咨询

good, 感谢!

Post Reply