基于串口的自定义包传输协议

215 阅读1分钟

1 协议说明

  • 1、发送固件大小:符号*来同步,然后发送固件大小,板子收到后,回复0x30表示擦除相应扇区大小成功,回复0x60表示擦除失败。
  • 2、发送固件数据:符号$来同步,然后发送固件数据,每次224字节大小,板子收到后,回复0x30表示数据编程成功,回复0x60表示擦除失败。如此反复,一直到发送完毕。
  • 3、发送结束命令:符号#表示传输结束,目标板可以加载到APP运行了。

2 主机传输(串口传输一般都是按照字节)

  • 固件大小4个字节 image.png image.png image.png
  • 发送固件数据,每次224字节大小 image.png image.png
  • 发送完成命令 image.png

3 从机接收处理逻辑

  • 从机也是一个字节一个字节接收 image.png image.png
  • 每次传输224个字节后,重新设置ucStatus = 0,重新开始传输固件命令 cmd == '$' image.png
  • 固件大小传输完毕之后,需要设置ucStatus = 0 image.png

4 bootloder

  • APP跳转到0x08100000 image.png