• 大小: 64KB
    文件类型: .gz
    金币: 2
    下载: 1 次
    发布日期: 2021-06-04
  • 语言: 其他
  • 标签: rzsz  

资源简介

rzsz 3 48 tar gz 开源串口利用Xmodem Ymodem ZModem 下载 上传的程序 在Linux Arm Linux 都可使用 开源串口利用Xmodem Ymodem ZModem 下载 上传的程序 在Linux Arm Linux 都可使用 [rzsz 3 48 tar gz] Linux下ztelnet 的rz sz源码 包含XMODEM YMOD

资源截图

代码片段和文件信息

/*% cc -O -K -dos % -o crc.exe
*/

/*
 *  Crc - 32 BIT ANSI X3.66 CRC checksum files
 */
#include 
#define OK 0
#define ERROR (-1)
#define LINT_ARGS

/**********************************************************************\
|*                                                                    *|
|* Demonstration program to compute the 32-bit CRC used as the frame  *|
|* check sequence in ADCCP (ANSI X3.66 also known as FIPS PUB 71     *|
|* and FED-STD-1003 the U.S. versions of CCITT‘s X.25 link-level     *|
|* protocol).  The 32-bit FCS was added via the Federal Register     *|
|* 1 June 1982 p.23798.  I presume but don‘t know for certain that   *|
|* this polynomial is or will be included in CCITT V.41 which        *|
|* defines the 16-bit CRC (often called CRC-CCITT) polynomial.  FIPS  *|
|* PUB 78 says that the 32-bit FCS reduces otherwise undetected       *|
|* errors by a factor of 10^-5 over 16-bit FCS.                       *|
|*                                                                    *|
\**********************************************************************/

/* Need an unsigned type capable of holding 32 bits; */
typedef unsigned long int UNS_32_BITS;

/*
 * Copyright (C) 1986 Gary S. Brown.  You may use this program or
 * code or tables extracted from it as desired without restriction.
 */
/* First the polynomial itself and its table of feedback terms.  The  */
/* polynomial is                                                       */
/* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 */
/* Note that we take it “backwards“ and put the highest-order term in  */
/* the lowest-order bit.  The X^32 term is “implied“; the LSB is the   */
/* X^31 term etc.  The X^0 term (usually shown as “+1“) results in    */
/* the MSB being 1.                                                    */

/* Note that the usual hardware shift register implementation which   */
/* is what we‘re using (we‘re merely optimizing it by doing eight-bit  */
/* chunks at a time) shifts bits into the lowest-order term.  In our   */
/* implementation that means shifting towards the right.  Why do we   */
/* do it this way?  Because the calculated CRC must be transmitted in  */
/* order from highest-order term to lowest-order term.  UARTs transmit */
/* characters in order from LSB to MSB.  By storing the CRC this way  */
/* we hand it to the UART in the order low-byte to high-byte; the UART */
/* sends each low-bit to hight-bit; and the result is transmission bit */
/* by bit from highest- to lowest-order term without requiring any bit */
/* shuffling on our part.  Reception works similarly.                  */

/* The feedback terms table consists of 256 32-bit entries.  Notes:   */
/*                                                                     */
/*  1. The table can be generated at runtime if desired; code to do so */
/*     is shown later.  It might not be obvious but the feedback      */
/*     terms simply re

评论

共有 条评论