背景:设备与单片机通过串口连接,之前不支持在线升级D4单片机程序,现要求通过串口升级单片机
目的:通过设备输入命令在线升级D4单片机
方案:设备通过串口把文件转换成二进制方式传给D4单片机,D4单片机在同步写进设计好的分区。最后通过D4单片机的boot进行升级和回滚
关于单片机的boot方案就不再这里详细说了,主要是说一下调试过程。
最好的调试就是把每一帧都打印出来,设备收发帧,单片机收发帧。都得打印出来。当你打印出来你已经完成大部分了。
目前主要是设备收帧有时会收不到单片机发的帧,我发帧是会告诉单片机这是第几帧有索引,单片机按照索引写入分区,所以这个问题不是很大。
以及说明明收到帧了但是crc校验失败,但是有的帧就能通过。我猜测和单片机、软件的编译环境有关,因为crc校验是给的一个数字矩阵,然后每个帧的数据相当于i 抑或上下一个数据这样算的。所以我直接修改了crc校验,之前把前几个数据相加放到帧尾。

982

被折叠的 条评论
为什么被折叠?



