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

📄 icmp.lst

📁 RTL8019AS以太网控制器以寄存器(16K的RAM)为核心
💻 LST
字号:
C51 COMPILER V7.06   ICMP                                                                  12/07/2004 08:46:35 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE ICMP
OBJECT MODULE PLACED IN icmp.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE icmp.c DEBUG OBJECTEXTEND

stmt level    source

   1          /*********************************************************************
   2           *文件名称:     icmp.c
   3           *文件标识: 
   4           *摘    要: 测试主机的可达性,其中主要的操作是ping
   5           *
   6           *********************************************************************/
   7          #define  ICMP_GLOBALS
   8          #include "net_cfg.h"
   9          
  10          /**********************************************************************
  11          **函数原型:     void        Ping_Request( )
  12          **入口参数:     无
  13          **出口参数:     无
  14          **返 回 值:     无
  15          **说    明:     发送PING请求报文,测试对方主机的可达性
  16          ************************************************************************/
  17          void Ping_Request()
  18          {
  19   1          TxdNetBuff.EtherFrame.DestMacId[0]=Ping_MAC.words[0];       //填充以太网协议目的物理地址字段
  20   1          TxdNetBuff.EtherFrame.DestMacId[1]=Ping_MAC.words[1];  
  21   1          TxdNetBuff.EtherFrame.DestMacId[2]=Ping_MAC.words[2];  
  22   1              TxdNetBuff.EtherFrame.NextProtocal=0x0800;              //以太网协议的下层协议为IP协议
  23   1              TxdNetBuff.IpFrame.VerandIphLen=0x45;                   //IP版本和首部长度各占VerandIphLen字段的4位,版本4
             -,占用高4位
  24   1                                                                                                                              //首部长度5*4=20,单位字节
  25   1              TxdNetBuff.IpFrame.ServerType=0x00;                     //服务类型,默认为0
  26   1              TxdNetBuff.IpFrame.TotalLen=60;                         //IP数据报总长度40字节,其中由总长度
  27   1                                                                                                                              //减去首部长度即可得数据报长度
  28   1          TxdNetBuff.IpFrame.ttl=0x80;                            //IP生存时间
  29   1              TxdNetBuff.IpFrame.FrameIndex=FrameIndex;               //帧序号
  30   1              FrameIndex++;                                           //
  31   1              TxdNetBuff.IpFrame.Segment=0x0000;                      //标志及段偏移都为0
  32   1              TxdNetBuff.IpFrame.NextProtocal=0x0001;                 //IP的下层协议为ICMP协议:TCP 
  33   1          TxdNetBuff.IpFrame.Crc=0;                                           
  34   1          TxdNetBuff.IpFrame.DestId[0]=Ping_Ip_Address.words[0];  //填充目的IP地址
  35   1          TxdNetBuff.IpFrame.DestId[1]=Ping_Ip_Address.words[1];
  36   1          TxdNetBuff.IpFrame.SourceIp[0]=My_Ip_Address.words[0];  //填充源IP地址
  37   1          TxdNetBuff.IpFrame.SourceIp[1]=My_Ip_Address.words[1];
  38   1          TxdNetBuff.IpFrame.Crc=CreateIpHeadCrc();               //产生IP数据报首部检验和,CreateIpHeadCrc()在gl
             -obal.c中定义
  39   1          TxdNetBuff.IcmpFrame.type=0x08;                         //表示该ICMP数据帧为PING请求                  
  40   1          TxdNetBuff.IcmpFrame.Crc=0;                                         
  41   1              TxdNetBuff.IcmpFrame.id=0x0300;                         //标识符
  42   1              TxdNetBuff.IcmpFrame.seq=FrameIndex;                    //ICMP报文序号
  43   1          TxdNetBuff.IcmpFrame.Crc=CreateIcmpCrc();               //产生ICMP报文的校验和,CreatIcmpCrc()在global.
             -c中定义
  44   1          Send_Packet(&TxdNetBuff,74);                            //发送数据包
  45   1      }
  46          //==========================================================
  47          /**********************************************************************
  48          **函数原型:     void        Ping_Answer( )
  49          **入口参数:             无
  50          **入口参数:             无
  51          **返 回 值:

⌨️ 快捷键说明

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