组播升级问题定位

问题背景

最近定位了两个关于组播升级的问题,这里写下定位过程,供大家参考。
问题1:组播升级测试版本重启后boot启动卡死,但是利用代码重新编译生成的版本没有这个问题;
问题2:组播升级重启后某个分区中的文件破坏了,导致里面的插件启动异常,出现一堆jffs2错误的打印;

定位过程

首先介绍一下组播升级的原理,通常在boot下我们利用tftp命令将firmware下载到内存某个固定地址,然后利用nand flash命令烧写到flash上。组播升级的原理和这个过程很类似,只不过不是通过tftp命令来获取的firmware,而是通过接收组播包、剥离数据段和组装来获取版本。组播升级的优点是可以批量升级,适用于工厂生产环境。好了,下面来说一下问题的定位过程。

  1. 【组播传输过程】在组播升级之后查看内存中的文件与实际的升级文件是否存在差异,如果不存在差异则说明组播的传输过程没有问题,有差异则需要利用Wireshark来跟踪一下组播传输过程,确定是组播上位机的问题还是单板接收端的问题;
  2. 【flash及其写入】若组播传输没有问题,从flash中读取对应地址,看与实际升级文件是否存在差异,有差异说明flash的写入过程存在问题;
  3. 【ddr】若flash中读取的内容和实际的升级文件没有差别,但是启动之后分区中的文件被破坏了,需要考虑是ddr的问题,因为可读可写分区存在ddrflash的映射操作。

猜你喜欢

转载自blog.csdn.net/weixin_34040079/article/details/87559617