Hi,TI
ZB_ZARC_Interest-Zigbee_OTA_Upgrade_Cluster_Specification中明确表示the version value should
be higher than the current image version on the client to indicate an upgrade,我用OtaServer进行OTA升级
的时候也验证了这一事实,可以正常的进行OTA升级,但是在用ZigBee Gateway Subsystem配合Gateway application
进行OTA升级的时候发现第一次按“O”是可以进行OTA升级的,但是在升级后,OTA Client重新入网后,会自动,反复循环的
一直进行OTA操作。附件中有用Ubiqua抓到的HCU工程OTA结尾处和再次进行OTA升级的包,the version value等于the current image
version,依旧会进行OTA,也验证过,小于的情况下也会进行OTA。
请问这个问题是ZigBee Gateway Subsystem中OTA server的问题还是Gateway Application的问题?该如何解决,已经困扰了我好几个月了,
谢谢!
VV:
在Gateway那边要OTA 退出来吧。
xudong Fan:
回复 VV:
ota的配置文件清空依旧会进行OTA,而且是之前烧录过的那个image,按理来说,两个如果image版本没有更新,就不会再继续进行ota的
Michael.Zhang:
回复 VV:
您好,ota重复更新的问题能不能帮我们解决一下,困扰好久了。many thanks!
miffy:
回复 Michael.Zhang:
即使版本不对,OTA也会升级的,因为源码里面并没有做判断。
另外,CC2538的 ping-ponging这种升级方式,必须严格注意,否则升级同一个固件就会导致芯片临时锁住。
解决方法就是在gateway端做判断,因为在image request阶段,远程节点会把fileId发过来,里面是有版本号的,所以本地读取的文件版本号和远程发过来的版本号做对比,决定是否升级就可以了。第一次的版本号一定是0x1,后面再升级Image B, 再接着升级Image A,再接下来Image B,就这样ping-ponging下去
miffy:
回复 xudong Fan:
我这边是已经成功了,我把zigbee linux gateway里面的ota server部分代码移植出来使用,已经成功了,绝对不会重复两次升级同一个固件,在我server端不换固件的情况下,只会升级一次,第二次就会因为版本无法升级,必须换固件,这样ping-ponging,完美解决了CC2538固件升级的问题
Michael.Zhang:
回复 miffy:
能共享下修改的代码吗,谢谢!