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

📄 main.lst

📁 这是TCP/IP协议组播的实现代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.07   MAIN                                                                  04/07/2006 09:01:49 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MAIN.C LARGE OMF2 ROM(D16M) REGFILE(.\trm_A.ORC) BROWSE MODDP2 MODDA VARBAN
                    -KING DEBUG

stmt level    source

   1          
   2          /********************** 此程序为IP视频会议终端C400程序 ************************/
   3          
   4          /*************************** main.c 为系统主程序 ******************************/
   5          
   6          /**************************** designed by wangxq    ***************************/
   7          
   8          /****************************      2006-02-23       ***************************/
   9          
  10          #include <stdio.h>               
  11          #include <string.h>              
  12          #include "user.h"
  13          #include "rom400_init.h"
  14          #include "rom400_task.h"
  15          #include "rom400_sock.h"
  16          
  17          #ifdef USE_KMEM_LIB
  18          #include "rom400_kmem.h"
  19          #endif
  20          #ifdef USE_XNETSTACK_LIB
  21          #include "rom400_xnetstack.h"
  22          #endif
  23          
  24          void main()
  25          {
  26   1              unsigned int i;
  27   1              #ifdef USE_XNETSTACK_LIB
  28   1              xnetstack_install();
  29   1              #endif
  30   1      
  31   1              #ifdef USE_KMEM_LIB
  32   1                  kmem_install(ROM400_KMEM_MODEL_SMALLEST + 2);
  33   1              #endif
  34   1      
  35   1      
  36   1              init_rom(RAM_START, RAM_END);
  37   1              //系统存储器的初始化,为ROMINIT.LIB的函数,完成对外接的存储器定标和分配地址  
  38   1          
  39   1              clear_param_buffers();
  40   1      
  41   1              
  42   1              #ifdef USE_XNETSTACK_LIB
  43   1              printf("DS80C400 Enhanced Network Library Version %d\r\n", xnetstack_version());
  44   1              #endif
  45   1      
  46   1              #ifdef USE_KMEM_LIB
  47   1              printf("DS80C400 KMEM Library Version             %d\r\n", kmem_version());
  48   1              #endif
  49   1      
  50   1          puts("Timing test...please wait.\r\n");
  51   1          printf("Reload : %x\r\n", task_gettickreload());
  52   1      
  53   1              init();//自己定义的函数,初始化自己定义的变量
  54   1      
C51 COMPILER V7.07   MAIN                                                                  04/07/2006 09:01:49 PAGE 2   

  55   1              puts("Wait IpAddress And Other Information");
  56   1              
  57   1              task_settickreload(RELOAD_73_728);//装载任务调度定时器的初值
  58   1      
  59   1          puts("About to wait 20...");
  60   1      
  61   1          wait_millis(20000);//等待5秒钟左右
  62   1      
  63   1          printf("Reload : %x\r\n", task_gettickreload()); 
  64   1      
  65   1              do_static();//设置本地IP地址属性(包括IP、网关等)
  66   1      
  67   1          network_config();//读取并打印设置参数
  68   1      
  69   1      
  70   1              /********************** 创建发送连接 *************************/ 
  71   1              memset(&send_udp_video, 0, sizeof(struct sockaddr));
  72   1              send_udp_video.sin_addr[12] = 192;
  73   1          send_udp_video.sin_addr[13] = 168;
  74   1          send_udp_video.sin_addr[14] = 0;
  75   1          send_udp_video.sin_addr[15] = 201;
  76   1          send_udp_video.sin_port = SEND_VIDEO_PORT;
  77   1                      
  78   1              video_sendhandle = socket(0, SOCKET_TYPE_DATAGRAM, 0);//创建UDP视频发送连接
  79   1      
  80   1              syn_setDatagramAddress(video_sendhandle, 1, &send_udp_video);//设置UDP命令字发送连接地址
  81   1              memset(&send_udp_audio, 0, sizeof(struct sockaddr));
  82   1              send_udp_audio.sin_addr[12] = 192;
  83   1          send_udp_audio.sin_addr[13] = 168;
  84   1          send_udp_audio.sin_addr[14] = 0;
  85   1          send_udp_audio.sin_addr[15] = 201;
  86   1          send_udp_audio.sin_port = SEND_G711_PORT;
  87   1      
  88   1              g711_sendhandle = socket(0, SOCKET_TYPE_DATAGRAM, 0);//创建UDP音频发送连接
  89   1      
  90   1              syn_setDatagramAddress(g711_sendhandle, 1, &send_udp_audio);//设置UDP命令字发送连接地址
  91   1      
  92   1              /*****************创建UDP命令字发送连接***********************/
  93   1      
  94   1              memset(&send_udp_command, 0, sizeof(struct sockaddr));
  95   1          send_udp_command.sin_addr[12] = 192;
  96   1          send_udp_command.sin_addr[13] = 168;
  97   1          send_udp_command.sin_addr[14] = 0;
  98   1          send_udp_command.sin_addr[15] = 201;
  99   1      
 100   1          send_udp_command.sin_port = SEND_COMMAND_PORT;
 101   1      
 102   1              command_sendhandle = socket(0, SOCKET_TYPE_DATAGRAM, 0);//创建UDP命令字发送连接
 103   1      
 104   1              if(command_sendhandle ==  0x0FFFF)
 105   1              puts("\r\n Failed to create command send UDP socket \r\n");
 106   1          else
 107   1              {
 108   2              puts("\r\n Succeed to create command send UDP socket \r\n");
 109   2              }
 110   1      
 111   1              syn_setDatagramAddress(command_sendhandle, 1, &send_udp_command);//设置UDP命令字发送连接地址
 112   1      
 113   1              /*****************创建UDP命令字发送连接***********************/
 114   1      
 115   1              /******************** 创建发送连接 ***************************/ 
 116   1      
C51 COMPILER V7.07   MAIN                                                                  04/07/2006 09:01:49 PAGE 3   

 117   1              /******************** 创建接收连接 ***************************/ 
 118   1      
 119   1              /******************创建UDP视频接收连接************************/
 120   1      
 121   1              memset(&rev_udp_video, 0, sizeof(struct sockaddr));
 122   1          rev_udp_video.sin_addr[12] = 192;
 123   1          rev_udp_video.sin_addr[13] = 168;
 124   1          rev_udp_video.sin_addr[14] = 0;
 125   1          rev_udp_video.sin_addr[15] = 200;
 126   1      
 127   1          rev_udp_video.sin_port = REV_VIDEO_PORT;
 128   1      
 129   1              video_revhandle = socket(0, SOCKET_TYPE_DATAGRAM, 0);//创建UDP接收命令字连接
 130   1      
 131   1              if(video_revhandle ==  0x0FFFF)
 132   1              puts("\r\n Failed to create receive video UDP socket \r\n");
 133   1          else
 134   1              puts("\r\n Succeed to create receive video UDP socket \r\n");
 135   1      
 136   1              if(bind(video_revhandle,&rev_udp_video,sizeof(struct sockaddr)) == 0)//绑定命令字接收地址和端口
 137   1              printf(" successully bind receive video address and port - %u\r\n",REV_VIDEO_PORT);
 138   1          else
 139   1              printf(" failed to bind receive video address and port \r\n");
 140   1      
 141   1              syn_setDatagramAddress(video_revhandle, 0, &rev_udp_video);     
 142   1      
 143   1              /******************创建UDP视频接收连接************************/
 144   1      
 145   1      
 146   1              /******************创建UDP音频接收连接************************/
 147   1      
 148   1              memset(&rev_udp_audio, 0, sizeof(struct sockaddr));
 149   1          rev_udp_audio.sin_addr[12] = 192;
 150   1          rev_udp_audio.sin_addr[13] = 168;
 151   1          rev_udp_audio.sin_addr[14] = 0;
 152   1          rev_udp_audio.sin_addr[15] = 200;
 153   1      
 154   1          rev_udp_audio.sin_port = REV_G711_PORT;
 155   1      
 156   1              g711_revhandle = socket(0, SOCKET_TYPE_DATAGRAM, 0);//创建UDP接收命令字连接
 157   1      
 158   1              if(g711_revhandle ==  0x0FFFF)
 159   1              puts("\r\n Failed to create receive audio UDP socket \r\n");
 160   1          else
 161   1              puts("\r\n Succeed to create receive audio UDP socket \r\n");
 162   1              
 163   1      
 164   1              if(bind(g711_revhandle,&rev_udp_audio,sizeof(struct sockaddr)) == 0)//绑定命令字接收地址和端口
 165   1          {   
 166   2                      printf(" successully bind receive audio address and port - %u\r\n",REV_G711_PORT);
 167   2          }
 168   1              else
 169   1              {
 170   2              printf(" failed to bind receive audio address and port \r\n");
 171   2              }
 172   1      
 173   1              syn_setDatagramAddress(g711_revhandle, 0, &rev_udp_audio);      
 174   1      
 175   1              /******************创建UDP音频接收连接************************/
 176   1      
 177   1              
 178   1              /******************创建UDP命令接收连接************************/
C51 COMPILER V7.07   MAIN                                                                  04/07/2006 09:01:49 PAGE 4   

 179   1      
 180   1              memset(&rev_udp_command, 0, sizeof(struct sockaddr));
 181   1          rev_udp_command.sin_addr[12] = 192;
 182   1          rev_udp_command.sin_addr[13] = 168;
 183   1          rev_udp_command.sin_addr[14] = 0;
 184   1          rev_udp_command.sin_addr[15] = 200;
 185   1      
 186   1          rev_udp_command.sin_port = REV_COMMAND_PORT;
 187   1      
 188   1              command_revhandle = socket(0, SOCKET_TYPE_DATAGRAM, 0);//创建UDP接收命令字连接
 189   1      
 190   1              if(command_revhandle ==  0x0FFFF)
 191   1              puts("\r\n Failed to create receive command UDP socket \r\n");
 192   1          else
 193   1              puts("\r\n Succeed to create receive command UDP socket \r\n");
 194   1      
 195   1              if(bind(command_revhandle,&rev_udp_command,sizeof(struct sockaddr)) == 0)//绑定命令字接收地址和端口
 196   1              printf(" successully bind receive command address and port - %u\r\n",REV_COMMAND_PORT);
 197   1          else
 198   1              printf(" failed to bind receive command address and port \r\n");
 199   1              
 200   1              syn_setDatagramAddress(command_revhandle, 0, &rev_udp_command); 
 201   1      
 202   1              /******************创建UDP命令接收连接************************/
 203   1      
 204   1      
 205   1              /******************** 创建接收连接 ***************************/ 
 206   1              
 207   1              //start_leave();
 208   1      
 209   1              task_entercritsection();   
 210   1          
 211   1              result = task_fork(NORM_PRIORITY, ROM_SAVESIZE);//创建两个任务线程
 212   1          
 213   1              if (result==0x0FFFF)//创建任务失败
 214   1          {
 215   2              task_leavecritsection();
 216   2              puts("Attempt to fork failed\r\n");
 217   2              return;
 218   2          }
 219   1              else if (result==0)//发送线程
 220   1          {
 221   2              while (1)

⌨️ 快捷键说明

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