📄 util.lst
字号:
215
216 // Code Copy
217 for(i = 0; i < _CODE_SIZE_; i++) {
218 c = __api_rd_code_byte(0x5D00+i);
219 #ifdef KJB_UPLOAD
PutHTOA(c);PutByte(' ');
#endif
222 __api_wr_code_byte(0x7000+i, c);
223
224 }
225
226 #ifdef KJB_UPLOAD
for(i = 0; i < _CODE_SIZE_; i++) {
c = __api_rd_code_byte(0x7000+i);
PutHTOA(c);PutByte(' ');
}
PutStringLn("Jump");
#endif
233 // jump
234 ((void (code *)(void))0x7000)();
235 //f = (void *)0x6000;
236 //f(1);
237
C51 COMPILER V6.21 UTIL 04/11/2005 14:25:52 PAGE 5
238 while(1);
239 }
240
241 int Serial_Upgrade(void)
242 {
243 u_int temp;
244 //u_char i, c;
245
246 //Bin download
247 PutString("\n\rFile size >> ");
248 temp = Query_i();
249
250 PutString("\n\rTransfer File !\n\r");
251 if (BinDownload(temp) == 0) {
252 PutString("\n\rDownload Error\n");
253 return(0);
254 }else {
255 PutString("\n\r>Wait . ");
256 }
257
258 NET_DOWN_SIZE = temp - 8;
259 Boot_Code_Copy();
260
261 // Code Copy
262 /*
263 for(i = 0; i < 0xA1; i++) {
264 c = __api_rd_code_byte(0x5000+i);
265 __api_wr_code_byte(0x6000+i, c);
266 }
267 NET_DOWN_SIZE = temp - 8;
268
269 // jump
270 ((void (code *)(void))0x6000)();
271
272 while(1);
273 */
274
275 }
276
277 void Display_Banner(void)
278 {
279 PutString("\n\r> Config");
280 PutString("\n\r<i> : Display Config");
281 PutString("\n\r<s> : Receive Config");
282 PutString("\n\r<c> : Firmware Update");
283 PutString("\n\r<d> : Disable DHCP");
284 PutString("\n\r<p> : Disable PPPoE");
285 PutString("\n\r<w> : Erase Passwd");
286
287 #ifdef KJB_UPLOAD
PutString("\n\r<t> : Test");
#endif
290
291 PutString("\n\r<e> : Exit");
292 PutString("\n\r>Type command : ");
293 }
294
295
296 int Check_Config(void)
297 {
298 u_char c, flag = 1;
299
C51 COMPILER V6.21 UTIL 04/11/2005 14:25:52 PAGE 6
300 #ifdef KJB_UPLOAD
u_char i, k;
#endif
303
304 Display_Banner();
305 while(flag) {
306 if (write != read) {
307 c = sio_buf[read++];
308 PutByte(c);PutByte(0x0a);PutByte(0x0d);
309 switch(c) {
310
311 #ifdef KJB_UPLOAD
case 't' :
for (i = 0; i < 10; i++) {
k = __api_wr_code_byte(0x7000+i, 0xAA);
PutHTOA(k);PutByte(' ');
}
for (i = 0; i < 10; i++) {
k = __api_rd_code_byte(0x7000+i);
PutHTOA(k);PutByte(' ');
}
break;
#endif
324 case 'i' :
325 DispalySetting();
326 PutByte(0x0a);PutByte(0x0d);
327 PutString("> ");
328 break;
329 case 's' :
330 ReceiveDefault();
331 flag = 0;
332 break;
333 case 'c' :
334 if (Serial_Upgrade() == 0) return(0);
335 break;
336 case 'd' :
337 EEP_Write(EE_DHCP, 0);
338 ConfigMsg.s.DHCP = 0;
339 flag = 0;
340 break;
341 case 'p' :
342 EEP_Write(EE_PPPOE, 0);
343 ConfigMsg.s.PPPoE = 0;
344 flag = 0;
345 break;
346 case 'q' :
347 flag = 0;
348 break;
349 case 'e' :
350 flag = 0;
351 break;
352 default :
353 flag = 0;
354 break;
355 } //switch
356 }
357 } // while
358 }
359
360 void Check_Pin12(void)
361 {
C51 COMPILER V6.21 UTIL 04/11/2005 14:25:52 PAGE 7
362 u_char i;
363
364 for (i = 0; i < 3; i++) {
365 wait_1ms(3);
366 if ((P1 & 0x04) == 0x00) { // if Pin is low
367 Check_Config();
368 }
369 }
370 }
371
372 void Check_key(void)
373 {
374 u_char i;
375
376 // Check key 'c', 'd', 'p'
377 for(i = 0; i < 7; i++)
378 {
379 wait_10ms(2);
380 if (write > 0) {
381 if (sio_buf[read++] == 'p') {
382 PutByte(sio_buf[read]);
383 Check_Config();
384 }
385 }
386 PutByte('.');
387 }
388 }
389
390
391
392 void New_Pro(void)
393 {
394 u_char i, j, temp;
395 u_char flag = 1;
396
397 PutString("\n\rIIM Ver : STD\n\r");
398
399 EA = 0;
400 write = 0;
401 EA = 1;
402
403 // Command
404 while(flag) {
405 if (write > 0) {
406 if (sio_buf[0] == 'S') {
407 PutByte('R');
408 flag = 0;
409 }
410 }
411 }
412
413 EA = 0;
414 write = 0;
415 EA = 1;
416 // Config data
417 flag = 1;
418 while(flag) {
419 if (write == ((EEPROMVALUE) * 2)) flag = 0;
420 }
421
422 for (i = 0, j = 0; i < EEPROMVALUE; i++) {
423 temp = gethex(sio_buf[j], sio_buf[j+1]);
C51 COMPILER V6.21 UTIL 04/11/2005 14:25:52 PAGE 8
424 j += 2;
425 EEP_Write(i, temp);
426 }
427
428 // Send Reply
429 PutByte('C');
430
431 // Reboot
432 ((void (code *)(void)) 0x0000)();
433 while(1);
434 }
435
436
C51 COMPILATION COMPLETE. 0 WARNING(S), 3 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -