📄 uart.lst
字号:
342 2 else
343 2 {
344 3 CmdError();
345 3 return;
346 3 }
347 2 }
348 1
349 1 Cmd[2] = (Cmd[2] << 4) & 0xf0;
350 1 Cmd[3] = Cmd[3] & 0x0f;
351 1
352 1 ch = Cmd[2] | Cmd[3];
353 1
354 1 pchar = ch;
*** WARNING 259 IN LINE 354 OF UART.C: '=': pointer: different mspace
355 1
356 1 for (j=0; j<8; j++)
357 1 {
358 2 sprintf(buffer, "0x%02x: ", (unsigned) ch);
359 2 PrintStr(buffer);
360 2 for (i = 0; i < 16; i++)
361 2 {
362 3 sprintf(buffer, "%02x ", (unsigned) *pchar++);
363 3 PrintStr(buffer);
364 3 }
365 2 PrintStr("\n");
366 2 ch = (ch + 16) % 256;
367 2 }
368 1 }
369
370
371 void CmdDC()
372 {
373 1 int i, j;
374 1 unsigned char code * pchar; // memory access pointer
375 1 unsigned int ch;
376 1 unsigned char buffer[100];
377 1
378 1 if (Cmd[6] != '\0')
379 1 {
380 2 CmdError();
381 2 return;
382 2 }
383 1
384 1 for (i=2; i<=5; i++)
385 1 {
386 2 if ((Cmd[i] >= '0' && Cmd[i] <='9') || (Cmd[i] >= 'a' && Cmd[i] <='f')
387 2 || (Cmd[i] >= 'A' && Cmd[i] <='F'))
388 2 {
C51 COMPILER V4.01, UART 06/10/05 11:07:07 PAGE 7
389 3 if ((Cmd[i] >= 'a' && Cmd[i] <='f') || (Cmd[i] >= 'A' && Cmd[i] <='F'))
390 3 Cmd[i] += 9;
391 3 }
392 2 else
393 2 {
394 3 CmdError();
395 3 return;
396 3 }
397 2 }
398 1
399 1 Cmd[2] = (Cmd[2] << 4) & 0xf0;
400 1 Cmd[3] = Cmd[3] & 0x0f;
401 1 Cmd[4] = (Cmd[4] << 4) & 0xf0;
402 1 Cmd[5] = Cmd[5] & 0x0f;
403 1
404 1 Cmd[2] = Cmd[2] | Cmd[3];
405 1 Cmd[4] = Cmd[4] | Cmd[5];
406 1
407 1
408 1 ch = (unsigned int)Cmd[2] & 0x00ff;
409 1 ch = (ch << 8) | ((unsigned int)Cmd[4] & 0x00ff);
410 1
411 1 pchar = ch;
*** WARNING 259 IN LINE 411 OF UART.C: '=': pointer: different mspace
412 1
413 1 for (j=0; j<8; j++)
414 1 {
415 2 sprintf(buffer, "0x%04x: ", (unsigned) ch);
416 2 PrintStr(buffer);
417 2 for (i = 0; i < 16; i++)
418 2 {
419 3 sprintf(buffer, "%02x ", (unsigned) *pchar++);
420 3 PrintStr(buffer);
421 3 }
422 2 PrintStr("\n");
423 2 ch = (ch + 16) % 0xffff;
424 2 }
425 1 }
426
427
428 void CmdDX()
429 {
430 1 int i, j;
431 1 unsigned char xdata * pchar; // memory access pointer
432 1 unsigned int ch;
433 1 unsigned char buffer[100];
434 1
435 1 if (Cmd[5] != '\0')
436 1 {
437 2 CmdError();
438 2 return;
439 2 }
440 1
441 1 for (i=2; i<=4; i++)
442 1 {
443 2 if ((Cmd[i] >= '0' && Cmd[i] <='9') || (Cmd[i] >= 'a' && Cmd[i] <='f')
444 2 || (Cmd[i] >= 'A' && Cmd[i] <='F'))
445 2 {
446 3 if ((Cmd[i] >= 'a' && Cmd[i] <='f') || (Cmd[i] >= 'A' && Cmd[i] <='F'))
447 3 Cmd[i] += 9;
448 3 }
449 2 else
450 2 {
451 3 CmdError();
452 3 return;
453 3 }
C51 COMPILER V4.01, UART 06/10/05 11:07:07 PAGE 8
454 2 }
455 1
456 1 Cmd[2] = Cmd[2] & 0x0f;
457 1 Cmd[3] = (Cmd[3] << 4) & 0xf0;
458 1 Cmd[4] = Cmd[4] & 0x0f;
459 1
460 1 Cmd[3] = Cmd[3] | Cmd[4];
461 1
462 1
463 1 ch = (unsigned int)Cmd[2] & 0x00ff;
464 1 ch = (ch << 8) | ((unsigned int)Cmd[3] & 0x00ff);
465 1
466 1 pchar = ch;
467 1
468 1 for (j=0; j<8; j++)
469 1 {
470 2 sprintf(buffer, "0x%03x: ", (unsigned) ch);
471 2 PrintStr(buffer);
472 2 for (i = 0; i < 16; i++)
473 2 {
474 3 sprintf(buffer, "%02x ", (unsigned) *pchar++);
475 3 PrintStr(buffer);
476 3 }
477 2 PrintStr("\n");
478 2 ch = (ch + 16) % 0xfff;
479 2 }
480 1 }
481
482
483 /****************************************************************************************
484 * 功能: M命令功能函数,修改memory内容
485 * CmdMI(): 修改内部RAM
486 ** CmdMX(): 修改外部RAM
487 * 参数: 无
488 ****************************************************************************************/
489 void CmdMI();
490 void CmdMX();
491
492 void CmdM()
493 {
494 1 switch (Cmd[1])
495 1 {
496 2 case 'i' :
497 2 CmdMI();
498 2 break;
499 2 case 'x' :
500 2 CmdMX();
501 2 break;
502 2 default :
503 2 CmdError();
504 2 break;
505 2 }
506 1 }
507
508
509 void CmdMI()
510 {
511 1 int i;
512 1 unsigned char idata * pchar; // memory access pointer
513 1 unsigned char ch1, ch2, ch3;
514 1
515 1 if (Cmd[8] != '\0')
516 1 {
517 2 CmdError();
518 2 return;
519 2 }
C51 COMPILER V4.01, UART 06/10/05 11:07:07 PAGE 9
520 1
521 1 for (i=2; i<=7; i++)
522 1 {
523 2 if ((Cmd[i] >= '0' && Cmd[i] <='9') || (Cmd[i] >= 'a' && Cmd[i] <='f')
524 2 || (Cmd[i] >= 'A' && Cmd[i] <='F'))
525 2 {
526 3 if ((Cmd[i] >= 'a' && Cmd[i] <='f') || (Cmd[i] >= 'A' && Cmd[i] <='F'))
527 3 Cmd[i] += 9;
528 3 }
529 2 else
530 2 {
531 3 CmdError();
532 3 return;
533 3 }
534 2 }
535 1 Cmd[2] = (Cmd[2] << 4) & 0xf0;
536 1 Cmd[3] = Cmd[3] & 0x0f;
537 1 ch1 = Cmd[2] | Cmd[3];
538 1
539 1 Cmd[4] = (Cmd[4] << 4) & 0xf0;
540 1 Cmd[5] = Cmd[5] & 0x0f;
541 1 ch2 = Cmd[4] | Cmd[5];
542 1
543 1 Cmd[6] = (Cmd[6] << 4) & 0xf0;
544 1 Cmd[7] = Cmd[7] & 0x0f;
545 1 ch3 = Cmd[6] | Cmd[7];
546 1
547 1 for (pchar=ch1; pchar<=ch2; pchar++)
*** WARNING 259 IN LINE 547 OF UART.C: '=': pointer: different mspace
548 1 {
549 2 *pchar = ch3;
550 2 }
551 1
552 1 PrintStr("Momery modify successful!\n");
553 1 }
554
555
556 void CmdMX()
557 {
558 1 int i;
559 1 unsigned char xdata * pchar; // memory access pointer
560 1 unsigned int ch1, ch2;
561 1 unsigned char ch3;
562 1
563 1 if (Cmd[10] != '\0')
564 1 {
565 2 CmdError();
566 2 return;
567 2 }
568 1
569 1 for (i=2; i<=9; i++)
570 1 {
571 2 if ((Cmd[i] >= '0' && Cmd[i] <='9') || (Cmd[i] >= 'a' && Cmd[i] <='f')
572 2 || (Cmd[i] >= 'A' && Cmd[i] <='F'))
573 2 {
574 3 if ((Cmd[i] >= 'a' && Cmd[i] <='f') || (Cmd[i] >= 'A' && Cmd[i] <='F'))
575 3 Cmd[i] += 9;
576 3 }
577 2 else
578 2 {
579 3 CmdError();
580 3 return;
581 3 }
582 2 }
583 1 Cmd[2] = Cmd[2] & 0x0f;
584 1 Cmd[3] = (Cmd[3] << 4) & 0xf0;
C51 COMPILER V4.01, UART 06/10/05 11:07:07 PAGE 10
585 1 Cmd[4] = Cmd[4] & 0x0f;
586 1
587 1 Cmd[3] = Cmd[3] | Cmd[4];
588 1 ch1 = (unsigned int)Cmd[2] & 0x00ff;
589 1 ch1 = (ch1 << 8) | ((unsigned int)Cmd[3] & 0x00ff);
590 1
591 1 Cmd[5] = Cmd[5] & 0x0f;
592 1 Cmd[6] = (Cmd[6] << 4) & 0xf0;
593 1 Cmd[7] = Cmd[7] & 0x0f;
594 1
595 1 Cmd[6] = Cmd[6] | Cmd[7];
596 1 ch2 = (unsigned int)Cmd[5] & 0x00ff;
597 1 ch2 = (ch2 << 8) | ((unsigned int)Cmd[6] & 0x00ff);
598 1
599 1 Cmd[8] = (Cmd[8] << 4) & 0xf0;
600 1 Cmd[9] = Cmd[9] & 0x0f;
601 1 ch3 = Cmd[8] | Cmd[9];
602 1
603 1
604 1 for (pchar=ch1; pchar<=ch2; pchar++)
605 1 {
606 2 *pchar = ch3;
607 2 }
608 1
609 1 PrintStr("Momery modify successful!\n");
610 1 }
611
612
613 /****************************************************************************************
614 * 功能: 帮助命令
615 * 参数: 无
616 ****************************************************************************************/
617 void CmdH(void)
618 {
619 1 if ((Cmd[0] == '?' && Cmd[1] == '\0')
620 1 || (Cmd[1] == 'e' && Cmd[2] == 'l' && Cmd[3] == 'p' && Cmd[4] == '\0'))
621 1 {
622 2 PrintStr(" di [adr] 读idata内容,adr为2位16进制数\n");
623 2 PrintStr(" dc [adr] 读code内容,adr为4位16进制数\n");
624 2 PrintStr(" dx [adr] 读xdata内容,adr为3位16进制数\n");
625 2 PrintStr(" mi [adr] [adr] [data] 修改idata内容,adr,data为2位16进制数\n");
626 2 PrintStr(" mc [adr] [adr] [data] 修改code内容,adr为4位16进制数\n");
627 2 PrintStr(" mx [adr] [adr] [data] 修改xdata内容,adr为3位16进制数\n");
628 2 PrintStr(" help / ? 列出帮助信息\n");
629 2 }
630 1 else
631 1 CmdError();
632 1 }
633
634
635 main()
636 {
637 1 unsigned char combuf[32];
638 1 uartInit();
639 1
640 1 Welcome();
641 1
642 1 Cmd[0] = '?';
643 1 Cmd[1] = '\0';
644 1 CmdH();
645 1
646 1 CmdLine();
647 1 while(1)
648 1 {
649 2 while(!RIflag);
650 2 if(readRxBuf(combuf))
C51 COMPILER V4.01, UART 06/10/05 11:07:07 PAGE 11
651 2 {
652 3 parse(combuf, Cmd);
653 3 switch(Cmd[0])
654 3 {
655 4 case 'd':
656 4 CmdD();
657 4 break;
658 4 case 'm':
659 4 CmdM();
660 4 break;
661 4 case 'h':
662 4 case '?':
663 4 CmdH();
664 4 break;
665 4 default:
666 4 CmdError();
667 4 break;
668 4 }
669 3 CmdLine();
670 3 }
671 2 }
672 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 5477 ----
CONSTANT SIZE = 707 ----
XDATA SIZE = 1485 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -