Page 1 of 1

求助:通过串口使用xmodem-1k协议升级固件,但是无法确定固件大小,导致校验失败

Posted: Thu Aug 10, 2023 2:53 am
by BurnerK
目前产品的方案是通过串口使用xmodem-1k协议升级固件,但在协议中,是不会交换固件准确大小的信息的,且最后一包不足1024字节的会用0x1A补全,导致在校验固件时,提示校验失败。临时方案是更改上位机程序,在启动xmodem-1k升级流程前告知固件大小。
但这终究是临时方案,更改所有上位机程序不现实,有什么办法能取消固件校验吗?或者能否有其他方法来支持?
升级协议固定为xmodem-1k协议;
实在没有其他办法才考虑联网升级;

Re: 求助:通过串口使用xmodem-1k协议升级固件,但是无法确定固件大小,导致校验失败

Posted: Tue Aug 15, 2023 9:16 am
by ESP_WangYX
不可以关闭固件校验。你在下发固件之前,给固件添加一个头部信息,记录固件的大小。传输时使用头部信息+实际的原始固件,写入到设备上的数据时只需要包含原始固件数据写入到 flash,其他数据不要写入,只作为传输校验的临时数据。