RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”
SDK:ty_iot_sdk_rtl8710bn_bugfix-2.3.2-beta.1135
编译命令:./build_app.sh apps/rtl8710bn_smart_plug_s165 rtl8710bn_smart_plug_s165 1.0.2
我编译上传的版本是1.0.2,但激活的时候显示固件版本是1.0.5,激活码版本是1.0.2,导致获取固件指纹失败
SDK:ty_iot_sdk_rtl8710bn_bugfix-2.3.2-beta.1135
编译命令:./build_app.sh apps/rtl8710bn_smart_plug_s165 rtl8710bn_smart_plug_s165 1.0.2
我编译上传的版本是1.0.2,但激活的时候显示固件版本是1.0.5,激活码版本是1.0.2,导致获取固件指纹失败
你先执行一下clean 指令,然后再编译1.0.2版本 重新上传试一下
执行这个命令要装什么东西吗?显示没有这个命令
执行一下 ./build_app.sh apps/rtl8710bn_smart_plug_s165 rtl8710bn_smart_plug_s165 1.0.2 clean 看看支不支持
我执行了: ./build_app.sh apps/rtl8710bn_smart_plug_s165 rtl8710bn_smart_plug_s165 1.0.4 clean
但结果是一样的
这个1.0.5是哪里定义的
1.0.5 是授权码下单的时候选择的版本号
这个怎么改呢?
授权的时候的版本,是在调用mf_init时传入的。你找到2.3.2 SDK里调用的地方应该是 tuya_main.c ->void user_main(void) 里
版本号就是 USER_SW_VER 这个宏。USER_SW_VER 这个宏的值 是从在你输入编译命令时传入的。
现在你编译输入的是1.0.2 但是实际是 1.0.5。怀疑是你之前编译过1.0.5,且tuya_main.c 文件什么都没修改,然后你直接编译1.0.2。tuya_main.c的中间文件还是保留1.0.5那时候的,并没有重新编译而导致的。
之前叫你执行一下clean指令,主要是想要清一下中间文件,让其重新编译。不过这个SDK 可能比较老,不支持 clean。
现在这边提供几个方式建议你尝试:
yingtao_33 2023年 Dec 28日 15:16授权的时候的版本,是在调用mf_init时传入的。你找到2.3.2 SDK里调用的地方应该是 tuya_main.c ->void user_main(void) 里
企业微信截图_17037466431041.png
版本号就是 USER_SW_VER 这个宏。USER_SW_VER 这个宏的值 是从在你输入编译命令时传入的。现在你编译输入的是1.0.2 但是实际是 1.0.5。怀疑是你之前编译过1.0.5,且tuya_main.c 文件什么都没修改,然后你直接编译1.0.2。tuya_main.c的中间文件还是保留1.0.5那时候的,并没有重新编译而导致的。
之前叫你执行一下clean指令,主要是想要清一下中间文件,让其重新编译。不过这个SDK 可能比较老,不支持 clean。
现在这边提供几个方式建议你尝试:
- 稍微改动一下 tuya_main.c 文件,让tuya_main.c 重新编译。
- 找到platforms 目录下原厂 SDK 中最终执行编译指令的地方,执行清除指令。
- 修改找到platforms 目录下原厂 SDK 编译脚本,在编译入口处加上删除中间文件。
在确认是这个问题前,请你先自查两点。1.当前模组的运行的固件已经烧录了你传到的平台上的固件即 1.0.2。 2. 你没有勾选 仅授权的选项,如软件上的报错提示第二点。
platforms 目录下原厂 SDK 中执行编译的入口脚本是:ty_iot_sdk_rtl8710bn_2.3.2\platforms\rtl8710bn\project\realtek_amebaz_va0_example\GCC-RELEASE\build_app_2M.sh