搜索
bottom↓
回复: 10

关于Ymodem在线IAP升级,最后一包0x1A怎么判断?

[复制链接]

出0入0汤圆

发表于 2019-6-26 16:25:16 | 显示全部楼层 |阅读模式
最近需要把在线升级加进去,采用了资料最多的Ymodem协议。
分析别人的程序和协议,发现最后一包如果不满1024字节时,会以1A填充,有人分析过说传输的是烧写文件是ASCII,不会存在0x1A。但实际bin烧写文件在传输时是真实的16进制,不是ASCII。于是在真实的bin里面存在了大量的0x1A。
那么,最后一包的0x1A就不好识别了。如果把最后一包的0x1A,不处理直接写入flash,直到收到结束包识别符才结束。试了一下,没有完全测试也可用。
但如果真正使用,最后一包的0x1A不处理,直接当成原有的程序写入单片机的flash是否会有问题呢。我参考了很多的源码,发现都没对0x1A进行识别和处理。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2019-6-26 17:28:58 来自手机 | 显示全部楼层
协议不是有文件大小吗?

出0入4汤圆

发表于 2019-6-26 19:51:32 来自手机 | 显示全部楼层
第一个包就是文件名和大小,lz不看协议说明书吗

出0入0汤圆

发表于 2019-6-26 20:20:47 来自手机 | 显示全部楼层
剩余的不写默认就是fffffff,所以你写成1a也没有问题

出0入0汤圆

发表于 2019-6-27 11:26:46 | 显示全部楼层
我是凑成整包,用0XFF凑。这样处理起来简单。就是多写一部分字节。

出0入70汤圆

发表于 2019-6-27 11:40:34 | 显示全部楼层
不影响, 程序不会寻址与你代码无关的东西的..

出0入0汤圆

发表于 2019-6-27 11:44:10 | 显示全部楼层
还是zmodem协议好~它支持不定长的数据子包,不会改动传输的文件。我这个月刚做好了下位机的接收程序和上位机的发送程序,试了下最大数据包改成32字节也一样可以通讯。
zmodem对于文件内容/CRC校验/报头类型和协议内部的控制字符相同的时候,会进行Escape转义,比如文件内部出现ZDLE(0x18),
则发送0x18和0x18^0x40两个字符,接收器碰到0x18后,就将后面一个字符再^0x40,就取出了文件中原本的那个0x18。
发现zmodem协议有些报头后面也会加1A,但是协议的报头接收程序没识别这个1A,估计是从x/ymodem里继承过来的吧。

出0入0汤圆

 楼主| 发表于 2019-6-27 14:41:00 | 显示全部楼层
chencc8 发表于 2019-6-27 11:44
还是zmodem协议好~它支持不定长的数据子包,不会改动传输的文件。我这个月刚做好了下位机的接收程序和上位 ...

我觉得接收bin,按包数去计算写地址,有不可控性。
接收hex去解析更好一点。

出0入0汤圆

 楼主| 发表于 2019-6-27 14:41:21 | 显示全部楼层
chencc8 发表于 2019-6-27 11:44
还是zmodem协议好~它支持不定长的数据子包,不会改动传输的文件。我这个月刚做好了下位机的接收程序和上位 ...

我觉得接收bin,按包数去计算写地址,有不可控性。
接收hex去解析更好一点。

出0入0汤圆

发表于 2019-6-27 20:05:19 | 显示全部楼层
要不就自己定义协议,是必须用串口么还是可以用其它的通信接口

出0入0汤圆

发表于 2019-7-1 10:00:38 | 显示全部楼层
不会有问题的。

无论你是放到内部的 Flash 还是外部的 SPI Flash,都是有最小擦除粒度的,通常为 4KBytes,如果你的固件不是 1024 对齐的,最后还是独占一个 4Kbyte 的块。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 15:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表