文件升级时序图
文件分包传输时序图:
数据分析
接收到的数据
buf =
{
0x00 0x00 0x00 0x00 // [0-3] byte 包的index
0x00 // [4] upgrade_file_type
0xa5 0xc3 // [5-6] upgrade_key
0x73 0x76 0x6e 0x32 0x34 0x32 // [7-12] ver_inf
0x00 0x00 0x06 0xd5 // [13-16] all_pkgs_num
0x00 0x03 0x6a 0x53 // [17-20] update_firmware_sz
0x47 0x22 // [CRC] PC端计算后发送过来的CRC校验值
}
[DBG]update:CRC_temp=4722; all_packet=0x6d5; update_firmware_sz=0x36a53
以上是对PC端发送过的index=0的一个数据包。那么什么时候结束呢?
从 f_addr==0xffffffff 可以看出:PC端会发送一个结束标志的数据包过来。让板子知识是结束了,当然也要结合update_firmware_sz和all_pkgs_num
来判断是否结束。