大固件高效传输的串口升级方案

   日期:2021-03-18     浏览:80    评论:0    
核心提示:极简的串口升级方案 最近接了一个项目,由于固件有点大,大概为4M byte,如果使用Ymodem、modbus等协议会有ACK应答等机制对于时间效率上会有损耗,所以我们选择了一个办法,就是不用协议,在简单的命令交互之后,上位机就直接把全部的固件扔到给下位机,然后下位机在中断中将接收到的数据扔到ringbuf环形缓冲区,如果接收超时后认为固件接收完毕,然后校验固件的合法性和完整性,如果校验通过将固件烧录到Flash当中。具体的流程图可以看下图。这个方法的局限性:内存要足够大,内存的大小必须大于要升级

极简的串口升级方案

最近接了一个项目,由于固件有点大,大概为4M byte,如果使用Ymodem、modbus等协议会有ACK应答等机制对于时间效率上会有损耗,所以我们选择了一个办法,就是不用协议,在简单的命令交互之后,上位机就直接把全部的固件扔到给下位机,然后下位机在中断中将接收到的数据扔到ringbuf环形缓冲区,如果接收超时后认为固件接收完毕,然后校验固件的合法性和完整性,如果校验通过将固件烧录到Flash当中。具体的流程图可以看下图。

这个方法的局限性:

  • 内存要足够大,内存的大小必须大于要升级的固件大小,因为你要分配一个很大的环形缓冲区。
  • 上位机一定要按流程走,不能在发送固件的时候乱发别的数据会导致接收的固件校验不过。
  • 没有重发机制,如果丢失一个字节升级就会失败,校验不过。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服