原创
[eCos移植] Redboot的xyzMODEM
在Redboot里面并没有实现zMODEM模式。使用yMODEM模式下传输文件要快些。下面是关于xyzMODEM的一点简介。
XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。如果接收方关于一个块的校验和与它在发送方的校验和相同时,接收方就向发送方发送一个认可字节。然而,这种对每个块都进行认可的策略将导致低性能,特别是具有很长传播延迟的卫星连接的情况时,问题更加严重。
使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。ZMODEM是最有效的一个XMODEM版本,它不需要对每个块都进行认可。事实上,它只是简单地要求对损坏的块进行重发。ZMODEM对按块收费的分组交换网络是非常有用的。不需要认可回送分组在很大程度上减少了通信量。
YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。
在redboot的main.c文件里面:
383 if (res == _GETS_TIMEOUT) {
384 // No input arrived
385 } else {
在以后的移植中,我想往384行里面添加一些超时处理,实现系统的自启动功能,类似于redboot的几个命令的组合。
文章评论(0条评论)
登录后参与讨论