TI中文支持网
TI专业的中文技术问题搜集分享网站

zigbee升级

cc2538出厂的时候自带uart升级boot吗?

miffy:

好像没有,我这边最近也在做CC2538 OTA升级开发,遇到很多问题,其中多次升级同一个固件之后变砖就是致命的一个,目前还没有解决,@VV还在想办法帮忙分析原因,之前我在也在e2e上问了,TI工程师JasonB也还没给回复。

tao zhang25:

回复 miffy:

我的OTA升级,最多同时10个升级,多了升级不了,你用的是哪个版本的固件??

miffy:

回复 tao zhang25:

应该不止是十个,十个以上也是能升级的,因为每次只是请求offset,每次都不同,主机端负责读取文件,然后返回。

如果说设备多了,很可能会导致ota server 端处理不过来,这是有可能的。

Michael.Zhang:

回复 miffy:

源码里面定义的最大节点数是20个,我用ota同时更新2个cc2538都不行,感觉是znp的串口处理数据太慢导致的。

miffy:

回复 Michael.Zhang:

不是串口慢,而是znp自身处理速度慢,每次每个节点block request最多只有32byte,20个同时请求才多少数据,没多少;

我测试了3个节点同时block request OTA升级,是可以同时进行的,只是偶尔某个会卡一下又继续了,估计是znp处理没有响应block response,但是也没有超时失败。

Michael.Zhang:

回复 miffy:

你应该是用修改后的程序测试的吧,我用源码测试,同时ota2个,其中一个卡死,一个可以ota。

miffy:

回复 Michael.Zhang:

你需要分析zcl_otaserver_lnx.c文件里面的zclOTA_Srv_QueryNextImageReq函数,这里面处理版本判断是最佳位置;

Michael.Zhang:

回复 miffy:

说实话,server端的源码我都没看过,每次测试出现问题我们都怀疑是server端的问题,老大就是一口咬定server没问题,翻来覆去的改linux gateway的代码。日了狗了,浪费了好多时间。谢谢大神指导。

Michael.Zhang:

回复 miffy:

有个问题请教一下:zclOTA_Srv_QueryNextImageReq()函数中获取的filed应该是client传递过来的(也就是在sample_app_ota.cfg中写入的zigbee文件),从而可以获取field.version;改version跟cc2538中version(默认0x00000001)对比,但是我不知道这个值怎么获取。

Michael.Zhang:

回复 miffy:

在zcl_otaserver_linux.c中的zclOTA_Srv_QueryNextImageReq()中修改代码如上截图,测试发现不能避免重复ota,我这样改有什么问题?谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » zigbee升级
分享到: 更多 (0)