我们在测试TuyaOS,版本信息:
Code: Select all
/* custom settings */
#define BUILD_DATE "2023_03_06"
#define BUILD_TIME "10_35_19"
#define GIT_USER "ci_manage"
#define IOT_SDK_VER "3.6.108"
#define SDK_BETA_VER "beta.1"
#define TARGET_PLATFORM "esp32"
#define PROJECT_NAME "tuyaos-iot"
#define SDK_ID "tuyaos-iot_3.6.108-beta.1_esp32_esp32_1.0.27-beta.3"
#define KERNEL_VER "1.0.1-beta.33"
// Generated by Tuya (https://www.tuya.com)
// 基于项目 tuyaos-iot (3.6.105)
// 基于工具链 esp32 (1.0.25)
在执行初始化过程中会报 wd_protected_read fails gw_bi -6 gw_bi read ret:-6,然后设备崩溃重启。
测试代码为:
Code: Select all
static void beginIOT()
{
OPERATE_RET rt = OPRT_OK;
// 涂鸦Device OS SDK 初始化, 因为DB初始化耗时较长,影响一些设备的启动效率,因此初始化的时候进行特殊处理
// 对DB进行延后初始化
TY_INIT_PARAMS_S init_param;
memset(&init_param,0,sizeof(TY_INIT_PARAMS_S));
init_param.init_db = false;
strcpy(init_param.sys_env, TARGET_PLATFORM);
rt = tuya_iot_init_params(nullptr, &init_param);
if (rt != OPRT_OK)
{
printf("IOT: Failed to init tuya params! %d",rt);
return;
}
SetLogManageAttr(TAL_LOG_LEVEL_TRACE);
TAL_PR_TRACE("%s", tuya_iot_get_sdk_info()); /* print SDK information */
TAL_PR_TRACE("%s:%s", "Tuya-IOT", "1.1.18"); /* print the firmware name and version */
TAL_PR_TRACE("firmware compiled at %s %s", __DATE__, __TIME__); /* print firmware compilation time */
rt = ws_db_init_mf();
printf("ws_db_init_mf = %d\n",rt);
TAL_PR_TRACE("111111111111111111");
rt = tuya_iot_kv_flash_init_param(nullptr);
if (rt != OPRT_OK)
{
printf("ws_db_init_mf = %d\n",rt);
return;
}
TAL_PR_TRACE("2222222222222222");
WF_GW_PROD_INFO_S prod_info = {"tuya019dd8094a679852", "vH8nulLdLiu9kNsVA5q16xhjvw4DYfo8", nullptr, nullptr};
rt = tuya_iot_set_wf_gw_prod_info(&prod_info);
if (rt != OPRT_OK)
{
printf("error = %d\n",rt);
return;
}
//ty_subscribe_event(EVENT_INIT,"sdk_init_end",sdk_init_finish_event_cb,SUBSCRIBE_TYPE_NORMAL);
//ty_subscribe_event(EVENT_POST_ACTIVATE,"activated",activated_dp_event_cb,SUBSCRIBE_TYPE_NORMAL);
//ty_subscribe_event(EVENT_NETCFG_ERROR,"netcfg_error",wf_cfg_err_event_cb,SUBSCRIBE_TYPE_NORMAL);
rt = device_init();
if (rt != OPRT_OK)
{
//log_e("IOT: Failed to init device!");
}
}
输出的 log 为:
Code: Select all
TKL_LOG: [01-01 00:00:00 ty I][tal_thread.c:184] thread_create name:health_monitor,stackDepth:4096,totalstackDepth:23552,priority:5
TKL_LOG: [01-01 00:00:00 ty I][mqc_app.c:429] mqc app init ...
TKL_LOG: [01-01 00:00:00 ty E][log_seq.c:873] logseq empty
TKL_LOG: [01-01 00:00:00 ty T][app_init.cpp:160] < TuyaOS V:3.6.108 BS:40.00_PT:2.3_LAN:3.5_CAD:1.0.5_CD:1.0.0 >
< BUILD AT:2023_03_06_10_35_19 BY ci_manage FOR tuyaos-iot AT esp32 >
IOT DEFS < WIFI_GW:1 DEBUG:0 KV_FILE:0 LITTLE_END:1 SL:1 OPERATING_SYSTEM:98 RELIABLE_TRANSFER:0 >
TKL_LOG: [01-01 00:00:00 ty T][app_init.cpp:161] Tuya-IOT:1.1.18
TKL_LOG: [01-01 00:00:00 ty T][app_init.cpp:162] firmware compiled at May 22 2025 16:03:57
TKL_LOG: [01-01 00:00:00 ty D][simple_flash.c:565] key_addr: 0x0 block_sz 4096
TKL_LOG: [01-01 00:00:00 ty N][simple_flash.c:446] key_addr: 0x0 block_sz 4096
TKL_LOG: [01-01 00:00:00 ty N][simple_flash.c:532] get key:
ws_db_init_mf = 0
TKL_LOG: [01-01 00:00:00 ty T][app_init.cpp:167] 111111111111111111
TKL_LOG: [01-01 00:00:00 ty D][tuya_ws_db.c:443] init fs. Path: null
TKL_LOG: [01-01 00:00:00 ty D][kv_storge.c:46] *****************kvs_init.
TKL_LOG: [01-01 00:00:00 ty N][tuya_tls.c:851] uni_random_init...
TKL_LOG: [01-01 00:00:00 ty E][ws_db_gw.c:84] wd_protected_read fails gw_bi -6
TKL_LOG: [01-01 00:00:00 ty D][ws_db_gw.c:146] gw_bi read ret:-6
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0x1b (SPI_FAST_FLASH_BOOT)
想问一下这是什么原因造成的,该怎么修改呢?