⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 ZLG DP-668开发板全部程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
  34      =1                      uint        DestMacId[3];           /*目的网卡地址*/
  35      =1                      uint        SourceMacId[3];     /*源网卡地址*/
  36      =1                      uint        NextProtocal;       /*下一层协议 */
  37      =1                      uchar       packet[1518];       /*包的内容*/
  38      =1                     }  ;
  39      =1  
  40      =1  /*******************IP包,仅当IHL=5时用,当不=5时作转换*********/
  41      =1  struct ip { uint        EtherHead[9];   /*以太网包头*/
  42      =1              uchar       VerandIphLen;   /*版本与头长度*/
  43      =1              uchar       ServerType;     /*服务类型*/
  44      =1              uint        TotalLen;       /*总长度*/
  45      =1              uint        FrameIndex;     /*IP帧序号*/
  46      =1              uint        Segment;        /*分段标志*/
  47      =1              uchar       ttl;            /*生存时间*/
  48      =1              uchar       NextProtocal;   /*下一层协议*/
  49      =1              uint        Crc;            /*校验和*/
  50      =1              uint        SourceIp[2];    /*源IP*/
  51      =1              uint        DestId[2];      /*目的IP*/
  52      =1              uchar       packet[1498];   /*IP包的内容*/
  53      =1            };
  54      =1  struct IpPacket  { uint         EtherHead[9];   /*以太网包头*/
  55      =1                     uint         IpPacket[720];  /*IP包的内容*/
  56      =1                   };
  57      =1  struct arp     { uint   EtherHead[9];       /*以太网头*//* arp报文的内容总长28字节*/
  58      =1                                         
  59      =1                   uint   HardwareType;       /*以太网为0x0001*/
  60      =1                   uint   ProtocalType;           /*ip 为0X0800*/
  61      =1                   uchar  HardwareLen;        /*=0X06*/
  62      =1                   uchar  ProtocalLen;        /*=0X04*/
  63      =1                   uint   Operation;              /*操作  0X0001为请求   0X0002为应答  */
  64      =1                                                  /*0X0003为反向地址请求 0X0004为反向地址应答*/
  65      =1                   uint   SourceMacId[3];         /*源网卡地址*/
  66      =1                   uint   SourceIp[2];            /*源IP地址*/
C51 COMPILER V7.01  MAIN                                                                   03/21/2003 09:31:06 PAGE 13  

  67      =1                   uint   DestMacId[3];           /*目的网卡地址*/
  68      =1                   uint   DestId[2];              /*目的IP地址*/
  69      =1                  };
  70      =1  
  71      =1  struct icmp {/*包含在IP包中,是IP的上层为0X01的应用*/
  72      =1                  uint    EtherHead[9];       /*以太网头*/
  73      =1                  uint    IpHead[10];             /*IP头*/
  74      =1                  uchar   type;                   /*0X08 PING请求 0X00 PING应答*/
  75      =1                  uchar   option;                         /*0X00 PING*/
  76      =1                  uint    Crc;
  77      =1                  uint    id;
  78      =1                  uint    seq;
  79      =1                  uchar   icmpdata[1478];
  80      =1                };
  81      =1  
  82      =1  struct tcp {   uint     EtherHead[9];
  83      =1                 uint     IpHead[10];
  84      =1                 uint     SourcePort;             /*源端口*/
  85      =1                 uint     DestPort;               /*目的端口*/
  86      =1                 ulong    SeqNum;                         /*顺序号*/
  87      =1                 ulong    AckNum;                         /*确认号*/
  88      =1                 uchar    offset;                 /*数据偏移量*/
  89      =1                 uchar    control;                /*连接控制*/
  90      =1                 uint     window;                 /*流控*/
  91      =1                 uint     Crc;                    /*校验和 ,包括伪头部,TCP头部,数据*/
  92      =1                 uint     urg;                    /*紧急指针*/
  93      =1                 uchar    tcpdata[1478];          /*TCP数据*/
  94      =1               };
  95      =1  
  96      =1  struct udp {   uint     EtherHead[9];
  97      =1                 uint     IpHead[10];
  98      =1                 uint     SourcePort;        /*源端口*/
  99      =1                 uint     DestPort;          /*目的端口*/
 100      =1                 uint     length;
 101      =1                 uint     Crc;               /*校验和,包括伪头部,udp头部,数据*/
 102      =1                 uchar    udpdata[1478];     /*udp数据*/
 103      =1               };
 104      =1  
 105      =1       /*所有协议的共用体*/
 106      =1  union Netcard {struct   {uchar          bytebuf[1536];}bytes;
 107      =1                 struct   {uint           wordbuf[768];}words;
 108      =1                 struct   ethernet    EtherFrame;
 109      =1                     struct       retransmit  ResendFrame;
 110      =1                 struct   arp             ArpFrame;
 111      =1                 struct   icmp            IcmpFrame;
 112      =1                 struct   tcp             TcpFrame;
 113      =1                 struct   ip              IpFrame;
 114      =1                     struct       udp             UdpFrame;
 115      =1                 struct   IpPacket        IpPacket;
 116      =1                };
 117      =1  
 118      =1  struct Socket_Type{
 119      =1                          uint    My_Port;                                //本机端口
 120      =1                                          uint    Dest_Port;                              //对方端口
 121      =1                                          uint    Dest_Ip[2];                             //对方ip
 122      =1                                          uint    Dest_Mac_Id[3];                 //对方的以太网地址
 123      =1                                          ulong   IRS;                                    //初始化顺序号
 124      =1                          ulong   ISS;                                    //我的初始化序列号
 125      =1                          ulong   Rcv_Next;                               //对方的顺序号
 126      =1                                          ulong   Send_Next;                              //我的已经发送顺序号
 127      =1                          ulong   Sent_UnAck;                             //我的还没有确认顺序号
 128      =1                                                                                                          //unsigned long dest_ack_number;
C51 COMPILER V7.01  MAIN                                                                   03/21/2003 09:31:06 PAGE 14  

 129      =1                                          uint    Rcv_Window;                             //对方的window大小
 130      =1                          uint    Snd_Window;                     //我的window大小
 131      =1                                  uint    Dest_Max_Seg_Size;              //对方接受的最大的数据包大小MTU
 132      =1                          uint    My_Max_Seg_Size;                //我能接受的最大的数据包大小
 133      =1                                          ulong   My_Wl1;         //seq
 134      =1                                          ulong   My_Wl2;         //ack
 135      =1                          uchar   State;          //连接状态
 136      =1                                          uchar   Open;
 137      =1                    };
 138      =1  
 139      =1  /*tcp state define */
 140      =1  
 141      =1  #define         TCP_STATE_LISTEN        0
 142      =1  #define         TCP_STATE_SYN_RCVD      1
 143      =1  #define         TCP_STATE_SYN_SENT      2
 144      =1  #define         TCP_STATE_ESTABLISHED   3
 145      =1  #define         TCP_STATE_FIN_WAIT1     4
 146      =1  #define         TCP_STATE_FIN_WAIT2     5
 147      =1  #define         TCP_STATE_CLOSING       6
 148      =1  #define         TCP_STATE_CLOSE_WAIT    7
 149      =1  #define         TCP_STATE_LAST_ACK      8
 150      =1  #define         TCP_STATE_CLOSED        9
 151      =1  #define         TCP_STATE_TIME_WAIT     10
 152      =1  //tcp连接的标志位
 153      =1  #define         TCP_FIN 0x01
 154      =1  #define         TCP_SYN 0x02
 155      =1  #define         TCP_RST 0x04
 156      =1  #define         TCP_PSH 0x08
 157      =1  #define         TCP_ACK 0x10
 158      =1  #define         TCP_URG 0x20
 159      =1  
 160      =1  /***    RTL8019's address deifne     ***/
 161      =1  #define dp668
 162      =1  #ifdef  dp668   //reg00- 10为isa网卡接口的寄存器地址300-31f
 163      =1                  #define         Reg00   XBYTE[0xfb00]   
 164      =1                  #define         Reg01   XBYTE[0xfb01]
 165      =1                  #define         Reg02   XBYTE[0xfb02]
 166      =1                  #define         Reg03   XBYTE[0xfb03]
 167      =1                  #define         Reg04   XBYTE[0xfb04]
 168      =1                  #define         Reg05   XBYTE[0xfb05]
 169      =1                  #define         Reg06   XBYTE[0xfb06]
 170      =1                  #define         Reg07   XBYTE[0xfb07]
 171      =1                  #define         Reg08   XBYTE[0xfb08]
 172      =1                  #define         Reg09   XBYTE[0xfb09]
 173      =1                  #define         Reg0a   XBYTE[0xfb0a]
 174      =1                  #define         Reg0b   XBYTE[0xfb0b]
 175      =1                  #define         Reg0c   XBYTE[0xfb0c]
 176      =1                  #define         Reg0d   XBYTE[0xfb0d]
 177      =1                  #define         Reg0e   XBYTE[0xfb0e]
 178      =1                  #define         Reg0f   XBYTE[0xfb0f]
 179      =1                  #define         Reg10   XBYTE[0xfb10]
 180      =1                  #define         Reg18   XBYTE[0xfb18]
 181      =1  
 182      =1  #endif
 183      =1  
  18          #include "global.c"             //全局变量以及以太网底层驱动程序
   1      =1  /*********************************************************************
   2      =1   *                      Copright(c) 2003,广州周立功单片机发展有限公司 
   3      =1   *                                              All rights reserved.
   4      =1   *                                         http://www.zlgmcu.com
   5      =1   *
   6      =1   *文件名称:     global.c
C51 COMPILER V7.01  MAIN                                                                   03/21/2003 09:31:06 PAGE 15  

   7      =1   *文件标识: 
   8      =1   *摘    要: 定义全局变量,网络底层驱动程序,校验和计算,处理器相关设定
   9      =1   *
  10      =1   *当前版本: V1.0
  11      =1   *作    者: zlgmcu
  12      =1   *完成日期: 2003.2.27
  13      =1   *
  14      =1   *
  15      =1   *
  16      =1   *********************************************************************/
  17      =1  /*********************************************************************
  18      =1   *                            公共变量定义
  19      =1   *
  20      =1   ********************************************************************/
  21      =1  //#include "uart.c"
  22      =1  
  23      =1  #define         COM_RXD_BUFF_SIZE   600 //串口接收缓冲区大小
  24      =1  #define         COM_TXD_BUFF_SIZE   600 //串口发送缓冲区大小
  25      =1  #define         COMMAND_BUFF_SIZE   600
  26      =1  #define         RT_BUFF_NUM 1           //5 was changed to 3,2002/12/19 14:10 
  27      =1  #define         TCP_MAX_RETXD   8       //tcp包最多重发的次数
  28      =1  
  29      =1  /****************************************************************/
  30      =1  uchar   Ping_Count;             //ping的次数,决定本地回显次数
  31      =1  uchar   Ping_IP_TTL=0;  //ping的主机的物理地址生存时间,单位分钟,为0表示IP地址没有解析
  32      =1  uchar   Gateway_IP_TTL=0 ;      //网关IP地址的物理地址生存时间,单位分钟
  33      =1                                                          //=0表示还没有解析,<5分钟时需要更新
  34      =1                          
  35      =1  uchar   Udp_Count;
  36      =1  uchar   Msec=0;                         //10毫秒
  37      =1  uchar   Sec=0;                          //秒钟
  38      =1  uchar   Min=0;                          //分钟
  39      =1  uchar   i=0;
  40      =1  uchar   bnry;                           //读芯片RAM指针
  41      =1  uchar   curr;                           //写芯片RAM指针
  42      =1  //uchar   Tcp_Drop_Count=0;     //用于关闭tcp连接的计数
  43      =1  uchar   RtTime=20;                      //重发时间
  44      =1  uchar   Tcp_Drop_Count=0;       //用于关闭tcp连接的计数
  45      =1  uint    FrameIndex=0;           //IP包的序列号
  46      =1  uint    ComRxdRead=0;           //串口接收读指针
  47      =1  uint    ComTxdRead=0;           //串口发送读指针
  48      =1  uint    ComRxdWrite=0;          //串口接收写指针
  49      =1  uint    ComTxdWrite=0;          //串口发送写指针
  50      =1  uint    Command_Len;            //命令长度
  51      =1  bit     ComTxdBufempty=0;   //串口发送缓冲区数据空的标志
  52      =1  bit     Tx_Buff_Sel=0;          //芯片的发送缓冲区选择
  53      =1  bit     BiSecond;                       //两秒时,该标志置1
  54      =1  bit     Tcp_Timeout=0;          //TCP超时标志,定时器0中断中将该标志置位
  55      =1  bit     TcpConnected=0;         //TCP连接建立标志
  56      =1  
  57      =1  uchar   code    HexTable[]={"0123456789ABCDEF"};                //为ascii->hex的转换表
  58      =1  uchar   code    MacID[6]={0x52,0x54,0x4c,0x19,0xf8,0x23};//将RTL8019的物理地址存储在程序空间中
  59      =1  
  60      =1  xdata   uchar   Command_Buf[COMMAND_BUFF_SIZE];//命令缓冲区
  61      =1  xdata   unsigned char IpStr[16]; 
  62      =1  xdata   unsigned char PortStr[5];
  63      =1  xdata   struct  Socket_Type TCP1024;
  64      =1  
  65      =1  xdata   uchar   ComRxdBuf[COM_RXD_BUFF_SIZE];  //串口的接收缓冲区
  66      =1  xdata   uchar   ComTxdBuf[COM_TXD_BUFF_SIZE];  //串口的发送缓冲区
  67      =1  
  68      =1  xdata   union   Netcard  RxdNetBuff;                    //数据接收缓冲区
C51 COMPILER V7.01  MAIN                                                                   03/21/2003 09:31:06 PAGE 16  

  69      =1  xdata   union   Netcard  TxdNetBuff;                    //数据发送缓冲区
  70      =1  xdata   union   Netcard  Resend_Buff;
  71      =1  
  72      =1  xdata   union   Ethernet_Address_Type My_MAC  ;         //本机的物理地址
  73      =1  xdata   union   Ethernet_Address_Type Gateway_MAC;      //网关的物理地址
  74      =1  xdata   union   Ethernet_Address_Type Ping_MAC;         //PING的物理地址
  75      =1  
  76      =1  xdata   union   Ip_Address_Type My_Ip_Address ;     //本机IP地址
  77      =1  xdata   union   Ip_Address_Type Gateway_Ip_Address;     //网关IP地址
  78      =1  xdata   union   Ip_Address_Type Mask_Ip_Address;        //子网掩码
  79      =1  xdata   union   Ip_Address_Type Ping_Ip_Address;        //保存PING命令的目的主机的物理地址
  80      =1  
  81      =1  union   u       RemotePort;
  82      =1  union   w       CrcTemp;
  83      =1  /**********************************************************************
  84      =1  **函数原型:    void    delay_ms(uint ms_number)
  85      =1  **入口参数:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -