打印

STM32 GPRS远程升级方案讨论

[复制链接]
1769|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jtyantai|  楼主 | 2014-2-20 15:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32 GPRS远程升级方案讨论
flash分区:
建议分三个区,BOOTLOADER,运行区,备份程序区.

传输机制:
考虑到空中升级的丢包几乎不可避免,升级进度由终端控制:终端发送需要的包序号,服务器返回.

保护机制:
1.第一包为导引包,包括总包数,每包大小,总程序CRC.
2.每一包都带有CRC校验.
3传输的每一包终端都放在备份区.
4.全部传输完毕后终端进行总程序CRC校验,再与导引包中的CRC对比.对比成功则软复位,在BOOTLOADER中进行升级.失败则重传或者停止传输.
目前的方案中有如下问题:
现在在协议判断上有些问题,不知道大家怎么处理的。我们的数据包自己定义了个协议,开头:0XAA,0X55,中间有长度,表示后面的字节数,结尾有OXFF,OXFE。现在的办法是通过查找开头OXAA,OX55,找到后寻找长度,再找结尾。现在的问题是:
1.数据包中有OXAA,OX55,OXFF,OXFE等。有可能会造成误判断,怎么解决?用转义符是否可以,比如增加个1B。不知道有没有做过的,详细讲一下。
2.GPRS本身指令是是以OXOD,OXOA来结束的,例如:信号强度,网络报错等。没有开头,都是以这个结束。程序中只能通过0XOD,OXOA来查找。这个数据在升级包中有也这情况,怎么处理呢?

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

1

粉丝