📄 main.lst
字号:
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 + -