【已解决】应用层保存自定义数据的空间咨询
分区表0x1C9000之后的8K,用于上电计数了,还有别的空间来保存应用层自定义的数据吗
分区表0x1C9000之后的8K,用于上电计数了,还有别的空间来保存应用层自定义的数据吗
用户自定义数据可以调用kv 或者 uf 接口进行读写。示例请参考example中的kv 和 uf 的示例:viewtopic.php?t=357
模仿example_os_kv_common例程,增加了图中的代码,log报1和2处的错误信息,请问下是我代码里哪里忽略了
这个时候 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 函数进行处理。
example_os_kv_common 中在初始化 tuyaos 的时候就将 kv 给初始化。但产品开发包在初始化的时候为了满足部分产品快速启动的需求(KV 初始化较慢,上电先不初始化),所以会出现这个问题。下面截图是先不初始化 KV:
上图中圈起来部分为 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 是在 成品产测之后执行的。
good, 感谢!