Page 1 of 1

多个外设+T5升级问题

Posted: 2025年 Jul 1日 13:51
by 13160058813

注册设备如图,云端设置固件如图,log如图。

希望可以实现多个固件+T5升级。

问题:
1、只能让其中之一的固件进行升级,涂鸦T5升级没有执行,固件二升级没有执行


Re: 多个外设+T5升级问题

Posted: 2025年 Jul 1日 15:28
by 13160058813

目前已实现多个外设升级的问题了,麻烦帮忙看下为什么涂鸦T5升级给没了


Re: 多个外设+T5升级问题

Posted: 2025年 Jul 2日 10:05
by 一线长天

先说结论:多个外设的OTA不需要这么使用,仅iot_cbs.gw_ug_cb注册处理函数即可,T5本身固件会SDK处理掉,外设固件会通过这个回调给上来自行处理。

tuya_svc_upgrade_register_pre_cb(__main_module_ug_inform_cb);
这个功能是针对主联网固件的OTA有定制需求的场景(如Linux平台),而对于T5是不需要注册该接口的。

一旦注册了就要小心处理下么这个接口的实现。
STATIC VOID_T __main_module_ug_inform_cb(INOUT BOOL_T *handled, IN CONST FW_UG_S *fw)
这个函数的实现截图看一下。

T5的固件,fw->tp == DEV_NM_ATH_SNGL,这个时候需要返回*handle=FALSE;


Re: 多个外设+T5升级问题

Posted: 2025年 Jul 2日 10:23
by 13160058813

1、我把代码上传了,麻烦帮忙看下
2、我最开始没有接管,直接使用的SDK,那时候单独升级T5,使用tuya_iot_wf_soc_dev_init注册,升级过程中总是死机,然后机器又重启,又升级,最后成功了。
3、目前我的需求是多个固件+T5固件升级,麻烦帮忙修改下,好不,调试了两周了,信息太少了,你们网页的文档都翻过了也没解决


Re: 多个外设+T5升级问题

Posted: 2025年 Jul 2日 10:36
by 13160058813

T5+linux算力芯片+其它mcu芯片升级


Re: 多个外设+T5升级问题

Posted: 2025年 Jul 2日 10:42
by 一线长天

T5因为本身固件比较大,升级过程时间比较长,不是死机了,过程中会重启一次的,这个是正常现象。
T5升级完后,会自动再升级外设固件的。


Re: 多个外设+T5升级问题

Posted: 2025年 Jul 2日 10:56
by 13160058813

1、刚才无取消了接管T5升级注册的那个函数
2、T5固件+两个其它固件,通道号0,10,11这三个,升级过程中卡在了98%附近,我把时间调整到了600,卡了很久,最后还是升级超时,我重启设备发现T5升级成功了


Re: 多个外设+T5升级问题

Posted: 2025年 Jul 2日 11:04
by 13160058813

[07-02 11:02:35 ty D][7e6b][tuya_svc_upgrade.c:1222] skip hmac
[07-02 11:02:35 ty D][7e6b][tuya_svc_upgrade.c:1229] file hmac check success
[07-02 11:02:35 ty D][7e6b][tuya_app_main.c:345] -------------------------------------------------------[bm_soc_dev_ota_finished_cb 345]

[07-02 11:02:35 ty D][7e6b][tuya_svc_upgrade.c:168] ======>>>>>>>> fw->fw_url[https://images.tuyacn.com/smart/firmwar ... 1fcf15.bin]
[07-02 11:02:35 ty D][7e6b][tuya_svc_upgrade.c:169] ======>>>>>>>> fw->fw_hmac[AD7CE6400993F64E50C7E87671664686EB85B31C7557D21F188B00A3EB527BE1]
[07-02 11:02:35 ty D][7e6b][tuya_svc_upgrade.c:170] ======>>>>>>>> fw->diff_ota[0]
[07-02 11:02:35 ty D][7e6b][tuya_svc_upgrade.c:171] ======>>>>>>>> fw->file_size[3575288]
[07-02 11:02:35 ty D][7e6b][tuya_svc_upgrade.c:173] ======>>>>>>>> multi_section->bin_type[0x4c5a4352]
[07-02 11:02:35 ty D][7e6b][tuya_svc_upgrade.c:174] ======>>>>>>>> multi_section->bin_step[0x67891234]
[07-02 11:02:35 ty D][7e6b][tuya_svc_upgrade.c:175] ======>>>>>>>> multi_section->bin_offset[0x15e1fc]
[07-02 11:02:35 ty D][7e6b][multi_section_upgrade.c:876] ota manage info:1, 1

u_bootloader enter
ty heap base: 28001B00 size: 65280
__read_manage_block: mag->blockid=255, id=1, mag->state=255.
__read_manage_block: mag->magic=0xFFFFFFFF, rescrc=0x0, mag->crc32=0xFFFFFFFF.
_judge_ota_info checkerr0:0, checkerr1:1
mag_info->blockid:0, mag_info->ctrlid:0, mag_info->state:1.

************diff2ya_header info********************
diff2ya_header.magic_ver = 0x4D4D4D
diff2ya_header.bin_type = 0x4C5A4352
diff2ya_header.src_crc32 = 0xD4812781
diff2ya_header.dst_crc32 = 0xD4812781
diff2ya_header.src_length = 2293760
diff2ya_header.dst_length = 2293760
diff2ya_header.bin_offset = 64
diff2ya_header.bin_start_addr = 0x0
diff2ya_header.patch_length = 1434044
diff2ya_header.patch_crc32 = 0x93B193FA
diff2ya_header.step = 0x0
diff2ya_header.buf_size = 1000
diff2ya_header.mode = 0
diff2ya_header.file_index = 0
diff2ya_header.min_supp_ver = 2
diff2ya_header.attr1 = 0x230000
diff2ya_header.attr2 = 0x0
diff2ya_header.extend_len = 0x0


diff ota ver:2, min_supp_ver:2
mag_info->magic: 0xABCDDCBA
mag_info->crc32: 0x324
mag_info->patchsz: 0x15E1FC
mag_info->wrcnt: 0
mag_info->ctrlid: 0
mag_info->flitoff: 0x0
mag_info->blockid: 0
mag_info->state: 1
mag_info->is_confirm_addr: 0
mag_info->flh_start_addr: 0x10000
mag_info->flh_len: 0x6BA000
mag_info->backup_confirm_addr: 0x0
mag_info->patch_confirm_addr: 0x0
flh_info->frmaddr: 0x10000
flh_info->pthaddr: 0x56A000
flh_info->bkupaddr: 0x569000
flh_info->magaddr: 0x6C9000
max len...firm_pack_len:0x230000, max_len:0x392000


Verify the patch crc32 result: 0x93B193FA
********************************bin_offset:64, bin_start_addr:0x0, extend_len:0x0, addr:0x56A040
erase ing
erase ok

升级卡在这里,APP显示大约36%附近,一会重启,又升级,而且上报了 ota_finished_cb事件


Re: 多个外设+T5升级问题

Posted: 2025年 Jul 2日 13:48
by 一线长天

单独T5升级需要的总体时间在5分钟左右。如果加上外设固件,时间整体会更长(视外设固件大小)。
10分钟是指在平台上配置的OTA超时时间么?
能提供一下完整的日志文件么?从升级T5固件开始,到外设固件也升级成功。


Re: 多个外设+T5升级问题

Posted: 2025年 Jul 2日 18:40
by 13160058813

目前已经解决了,谢谢大佬的支持