📄 usb2ser.lst
字号:
604 2 return (TRUE);
605 2 }
606 1 }
607
608 BOOL DR_GetDescriptor(void)
609 {
610 1 BYTE length,i;
611 1
612 1 pHIDDscr = (WORD)&HIDDscr;
613 1 pReportDscr = (WORD)&ReportDscr;
C51 COMPILER V6.03b USB2SER 08/16/2001 12:50:55 PAGE 11
614 1 pReportDscrEnd = (WORD)&ReportDscrEnd;
615 1
616 1 switch (SETUPDAT[3])
617 1 {
618 2 case GD_HID: //HID Descriptor
619 2
620 2 SUDPTRH = MSB(pHIDDscr);
621 2 SUDPTRL = LSB(pHIDDscr);
622 2
623 2 return (FALSE);
624 2
625 2 case GD_REPORT: //Report Descriptor
626 2
627 2 length = pReportDscrEnd - pReportDscr;
628 2
629 2 while (length)
630 2 {
631 3 for(i=0; i<min(length,64); i++)
632 3 *(IN0BUF+i) = *((BYTE xdata *)pReportDscr+i);
633 3
634 3 //set length and arm Endpoint
635 3 EZUSB_SET_EP_BYTES(IN0BUF_ID,min(length,64));
636 3 length -= min(length,64);
637 3
638 3 // Wait for it to go out (Rev C and above)
639 3 while(EP0CS & 0x04) {}
640 3 }
641 2
642 2 return (FALSE);
643 2
644 2 default:
645 2
646 2 return(TRUE);
647 2 }
648 1 }
649
650 BOOL DR_SetConfiguration(void) // Called when a Set Configuration command is received
651 {
652 1 Configuration = SETUPDAT[2];
653 1
654 1 return(TRUE); // Handled by user code
655 1 }
656
657 BOOL DR_GetConfiguration(void) // Called when a Get Configuration command is received
658 {
659 1 IN0BUF[0] = Configuration;
660 1 EZUSB_SET_EP_BYTES(IN0BUF_ID,1);
661 1 return(TRUE); // Handled by user code
662 1 }
663
664 BOOL DR_SetInterface(void) // Called when a Set Interface command is received
665 {
666 1 AlternateSetting = SETUPDAT[2];
667 1 return(TRUE); // Handled by user code
668 1 }
669
670 BOOL DR_GetInterface(void) // Called when a Set Interface command is received
671 {
672 1 IN0BUF[0] = AlternateSetting;
673 1 EZUSB_SET_EP_BYTES(IN0BUF_ID,1);
674 1 return(TRUE); // Handled by user code
675 1 }
C51 COMPILER V6.03b USB2SER 08/16/2001 12:50:55 PAGE 12
676
677 BOOL DR_GetStatus(void)
678 {
679 1 return(TRUE);
680 1 }
681
682 BOOL DR_ClearFeature(void)
683 {
684 1 return(TRUE);
685 1 }
686
687 BOOL DR_SetFeature(void)
688 {
689 1 return(TRUE);
690 1 }
691
692 BOOL DR_VendorCmnd(void)
693 {
694 1 return(TRUE);
695 1 }
696
697 //-----------------------------------------------------------------------------
698 // USB Interrupt Handlers
699 // The following functions are called by the USB interrupt jump table.
700 //-----------------------------------------------------------------------------
701
702 // Setup Data Available Interrupt Handler
703 void ISR_Sudav(void) interrupt 0
704 {
705 1 GotSUD = TRUE; // Set flag
706 1 EZUSB_IRQ_CLEAR();
707 1 USBIRQ = bmSUDAV; // Clear SUDAV IRQ
708 1 }
709
710 // Setup Token Interrupt Handler
711 void ISR_Sutok(void) interrupt 0
712 {
713 1 EZUSB_IRQ_CLEAR();
714 1 USBIRQ = bmSUTOK; // Clear SUTOK IRQ
715 1 }
716
717 void ISR_Sof(void) interrupt 0
718 {
719 1 EZUSB_IRQ_CLEAR();
720 1 USBIRQ = bmSOF; // Clear SOF IRQ
721 1 }
722
723 void ISR_Ures(void) interrupt 0
724 {
725 1 EZUSB_IRQ_CLEAR();
726 1 USBIRQ = bmURES; // Clear URES IRQ
727 1 }
728
729 void ISR_IBN(void) interrupt 0
730 {
731 1 // ISR for the IN Bulk NAK (IBN) interrupt.
732 1 }
733
734 void ISR_Susp(void) interrupt 0
735 {
736 1 Sleep = TRUE;
737 1 EZUSB_IRQ_CLEAR();
C51 COMPILER V6.03b USB2SER 08/16/2001 12:50:55 PAGE 13
738 1 USBIRQ = bmSUSP;
739 1 }
740
741 void ISR_Ep0in(void) interrupt 0
742 {
743 1 }
744
745 void ISR_Ep0out(void) interrupt 0
746 {
747 1 }
748
749 void ISR_Ep1in(void) interrupt 0
750 {
751 1 }
752
753 void ISR_Ep1out(void) interrupt 0
754 {
755 1 }
756
757 void ISR_Ep2in(void) interrupt 0
758 {
759 1 }
760
761 void ISR_Ep2out(void) interrupt 0
762 {
763 1 }
764
765 void ISR_Ep3in(void) interrupt 0
766 {
767 1 }
768
769 void ISR_Ep3out(void) interrupt 0
770 {
771 1 }
772
773 void ISR_Ep4in(void) interrupt 0
774 {
775 1 }
776
777 void ISR_Ep4out(void) interrupt 0
778 {
779 1 }
780
781 void ISR_Ep5in(void) interrupt 0
782 {
783 1 }
784
785 void ISR_Ep5out(void) interrupt 0
786 {
787 1 }
788
789 void ISR_Ep6in(void) interrupt 0
790 {
791 1 }
792
793 void ISR_Ep6out(void) interrupt 0
794 {
795 1 }
796
797 void ISR_Ep7in(void) interrupt 0
798 {
799 1 }
C51 COMPILER V6.03b USB2SER 08/16/2001 12:50:55 PAGE 14
800
801 void ISR_Ep7out(void) interrupt 0
802 {
803 1 }
804
805
C51 COMPILER V6.03b USB2SER 08/16/2001 12:50:55 PAGE 15
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION TD_Init (BEGIN)
; SOURCE LINE # 187
; SOURCE LINE # 188
; SOURCE LINE # 192
0000 900000 E MOV DPTR,#IN07VAL
0003 E0 MOVX A,@DPTR
0004 4402 ORL A,#02H
0006 F0 MOVX @DPTR,A
; SOURCE LINE # 193
0007 900000 E MOV DPTR,#OUT07VAL
000A E0 MOVX A,@DPTR
000B 4404 ORL A,#04H
000D F0 MOVX @DPTR,A
; SOURCE LINE # 195
000E E4 CLR A
000F 900000 E MOV DPTR,#OUT07IEN
0012 F0 MOVX @DPTR,A
; SOURCE LINE # 196
0013 900000 E MOV DPTR,#USBPAIR
0016 E0 MOVX A,@DPTR
0017 4408 ORL A,#08H
0019 F0 MOVX @DPTR,A
; SOURCE LINE # 198
001A 750002 R MOV Ep2Index,#02H
; SOURCE LINE # 199
001D E4 CLR A
001E F500 R MOV Ep1Index,A
; SOURCE LINE # 203
0020 900000 E MOV DPTR,#PORTCCFG
0023 7403 MOV A,#03H
0025 F0 MOVX @DPTR,A
; SOURCE LINE # 204
0026 900000 E MOV DPTR,#OEC
0029 7430 MOV A,#030H
002B F0 MOVX @DPTR,A
; SOURCE LINE # 205
002C 900000 E MOV DPTR,#OUTC
002F 74DF MOV A,#0DFH
0031 F0 MOVX @DPTR,A
; SOURCE LINE # 213
0032 E4 CLR A
0033 900000 E MOV DPTR,#PORTACFG
0036 F0 MOVX @DPTR,A
; SOURCE LINE # 214
0037 900000 E MOV DPTR,#OEA
003A 74FF MOV A,#0FFH
003C F0 MOVX @DPTR,A
; SOURCE LINE # 215
003D E4 CLR A
003E 900000 E MOV DPTR,#OUTA
0041 F0 MOVX @DPTR,A
; SOURCE LINE # 220
0042 900000 E MOV DPTR,#ISOCTL
0045 E0 MOVX A,@DPTR
0046 4401 ORL A,#01H
0048 F0 MOVX @DPTR,A
; SOURCE LINE # 222
0049 E4 CLR A
004A F500 R MOV txOutPtr,A
C51 COMPILER V6.03b USB2SER 08/16/2001 12:50:55 PAGE 16
004C F500 R MOV txOutPtr+01H,A
004E F500 R MOV txInPtr,A
0050 F500 R MOV txInPtr+01H,A
; SOURCE LINE # 223
0052 F500 R MOV rxOutPtr,A
0054 F500 R MOV rxOutPtr+01H,A
0056 F500 R MOV rxInPtr,A
0058 F500 R MOV rxInPtr+01H,A
; SOURCE LINE # 228
005A 900000 E MOV DPTR,#BPADDR
005D 7400 R MOV A,#HIGH TD_Poll
005F F0 MOVX @DPTR,A
0060 A3 INC DPTR
0061 7400 R MOV A,#LOW TD_Poll
0063 F0 MOVX @DPTR,A
; SOURCE LINE # 229
0064 900000 E MOV DPTR,#USBBAV
0067 E0 MOVX A,@DPTR
0068 4402 ORL A,#02H
006A F0 MOVX @DPTR,A
; SOURCE LINE # 230
006B E0 MOVX A,@DPTR
006C 54FB ANL A,#0FBH
006E F0 MOVX @DPTR,A
; SOURCE LINE # 235
006F C2AC CLR ES0
; SOURCE LINE # 236
0071 D299 SETB TI
; SOURCE LINE # 238
0073 900000 E MOV DPTR,#OUTC
0076 E0 MOVX A,@DPTR
0077 54DF ANL A,#0DFH
0079 F0 MOVX @DPTR,A
; SOURCE LINE # 243
007A C200 R CLR localRTS
; SOURCE LINE # 246
007C D200 R SETB hostRTS
; SOURCE LINE # 247
007E 22 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -