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

📄 vcomuser.lst

📁 NXP产品LPC23XX的开发板的源文件
💻 LST
📖 第 1 页 / 共 5 页
字号:
  635   1        if ( channelNum == 1 ) {
  636   2          mcr = U1MCR & 0xFD;
  637   2          U1MCR = mcr | (ConfigValue << 1);
  638   2        }
  639   1      }
  640          
  641          void GetSIOModemStatus( BYTE channelNum )
  642          {
  643   1        channelNum = channelNum;
  644   1      }
  645          
  646          /*
  647           *  VCOM Get SIO Setup Request Callback
  648           *    Parameters:      None (global SetupPacket and EP0Buf)
  649           *    Return Value:    TRUE - Success, FALSE - Error
  650           */
  651          
  652          BOOL VCOM_GetSIOSetup (void) {
ARM COMPILER V2.31,  VCOMuser                                                              23/11/05  10:53:11  PAGE 11  

  653   1        /* Get SIO setup from the device, not supported */
  654   1        return (TRUE);  
  655   1      }
  656          
  657          
  658          /*
  659           *  VCOM Set SIO Setup Request Callback
  660           *    Parameters:      None (global SetupPacket and EP0Buf)
  661           *    Return Value:    TRUE - Success, FALSE - Error
  662           */
  663          
  664          BOOL VCOM_SetSIOSetup( BYTE Cmd, BYTE Data ) {
  665   1        
  666   1        BYTE ChannelNum;
  667   1      
  668   1        /* Set SIO configuration, baudrate, data bits, stop bits, parity, flow control, 
  669   1        based on the info. from the host */
  670   1        if ( !(Cmd & 0x20) )
  671   1          ChannelNum = 0;
  672   1        else
  673   1          ChannelNum = 1;
  674   1      
  675   1        Cmd &= ~0x20;         /* clear bit 5, use all cmd for channel 0 */
  676   1        switch ( Cmd ) {
  677   2          case BAUDRATE_SETUP:
  678   2            SetSIOBaudrate( ChannelNum, Data );
  679   2            break;
  680   2          case STOPBIT_SETUP:
  681   2              SetSIOStopBit( ChannelNum, Data );
  682   2            break;          
  683   2          case DATABIT_SETUP:
  684   2              SetSIODataBit( ChannelNum, Data );
  685   2            break;
  686   2          case PARITY_SETUP:
  687   2              SetSIOParity( ChannelNum, Data );
  688   2            break;
  689   2          case FLOWCTRL_SETUP:
  690   2              SetSIOFlowControl( ChannelNum, Data );
  691   2            break;
  692   2          case DTR_SETUP:
  693   2              SetSIODTR( ChannelNum, Data );
  694   2            break;
  695   2          case RTS_SETUP:
  696   2              SetSIORTS( ChannelNum, Data );
  697   2            break;
  698   2          case HARDCODE_SETUP:
  699   2            break;
  700   2          case MODEM_SETUP:
  701   2              GetSIOModemStatus( ChannelNum );
  702   2            break;
  703   2          default:
  704   2            // EP0Buf[] = ...;
  705   2            // break;
  706   2            return (FALSE);
  707   2        }
  708   1        return (TRUE);
  709   1      }
  710          
ARM COMPILER V2.31,  VCOMuser                                                              23/11/05  10:53:11  PAGE 12  

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (USB_ReadEP?T)
 EXTERN CODE16 (USB_WriteEP?T)
 EXTERN DATA (USB_Configuration)
 EXTERN CODE16 (USB_ResetCore?T)
 EXTERN CODE16 (USB_EndPoint0?T)



*** PUBLICS:
 PUBLIC         USB_Reset_Event?T
 PUBLIC         DeviceData2UART?T
 PUBLIC         DeviceData2Host?T
 PUBLIC         USB_EndPoint1?T
 PUBLIC         USB_EndPoint2?T
 PUBLIC         USB_EndPoint3?T
 PUBLIC         USB_EndPoint4?T
 PUBLIC         USB_EndPoint5?T
 PUBLIC         USB_EndPoint6?T
 PUBLIC         USB_EndPoint7?T
 PUBLIC         USB_EndPoint8?T
 PUBLIC         USB_EndPoint9?T
 PUBLIC         USB_EndPoint10?T
 PUBLIC         USB_EndPoint11?T
 PUBLIC         USB_EndPoint12?T
 PUBLIC         USB_EndPoint13?T
 PUBLIC         USB_EndPoint14?T
 PUBLIC         USB_EndPoint15?T
 PUBLIC         USB_Configure_Event?T
 PUBLIC         init_serial?T
 PUBLIC         putchar?T
 PUBLIC         getchar?T
 PUBLIC         VCOM_SetSIOSetup?T
 PUBLIC         VCOM_GetSIOSetup?T
 PUBLIC         SetSIOBaudrate?T
 PUBLIC         SetSIOStopBit?T
 PUBLIC         SetSIODataBit?T
 PUBLIC         SetSIOParity?T
 PUBLIC         SetSIOFlowControl?T
 PUBLIC         SetSIODTR?T
 PUBLIC         SetSIORTS?T
 PUBLIC         GetSIOModemStatus?T
 PUBLIC         USB_P_EP
 PUBLIC         ReportStatus0
 PUBLIC         ReportStatus1
 PUBLIC         Data2Host0
 PUBLIC         Data2Host1
 PUBLIC         RxLength0
 PUBLIC         RxLength1
 PUBLIC         USB2UARTBuf0
 PUBLIC         USB2UARTBuf1
 PUBLIC         UART2USBBuf0
 PUBLIC         UART2USBBuf1



*** DATA SEGMENT '?DT0?VCOMuser':
 00000000          USB_P_EP:
 00000000           BEGIN_INIT
 00000000  00000000  DD          USB_EndPoint0?T
 00000004  00000000  DD          USB_EndPoint1?T
 00000008  00000000  DD          USB_EndPoint2?T
 0000000C  00000000  DD          USB_EndPoint3?T
 00000010  00000000  DD          USB_EndPoint4?T
 00000014  00000000  DD          USB_EndPoint5?T
 00000018  00000000  DD          0x0
 0000001C  00000000  DD          0x0
ARM COMPILER V2.31,  VCOMuser                                                              23/11/05  10:53:11  PAGE 13  

 00000020  00000000  DD          0x0
 00000024  00000000  DD          0x0
 00000028  00000000  DD          0x0
 0000002C  00000000  DD          0x0
 00000030  00000000  DD          0x0
 00000034  00000000  DD          0x0
 00000038  00000000  DD          0x0
 0000003C  00000000  DD          0x0
 00000040           END_INIT
 00000040          KeyPressed:
 00000040           BEGIN_INIT
 00000040  00        DB          0x0
 00000041           END_INIT
 00000041          ReportStatus0:
 00000041           BEGIN_INIT
 00000041  00        DB          0x0
 00000042           END_INIT
 00000042          ReportStatus1:
 00000042           BEGIN_INIT
 00000042  00        DB          0x0
 00000043           END_INIT
 00000043          Data2Host0:
 00000043           BEGIN_INIT
 00000043  00        DB          0x0
 00000044           END_INIT
 00000044          Data2Host1:
 00000044           BEGIN_INIT
 00000044  00        DB          0x0
 00000045           END_INIT
 00000045          RxLength0:
 00000045            DS          1
 00000046          RxLength1:
 00000046            DS          1
 00000047          USB2UARTBuf0:
 00000047            DS          64
 00000087          USB2UARTBuf1:
 00000087            DS          64
 000000C7          UART2USBBuf0:
 000000C7            DS          64
 00000107          UART2USBBuf1:
 00000107            DS          64



*** CODE SEGMENT '?PR?DeviceData2UART?T?VCOMuser':
   52: void DeviceData2UART( BYTE portNum )
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C07      MOV         R7,R0 ; portNum
 00000004  ---- Variable 'portNum' assigned to Register 'R7' ----
 00000004  ---- Variable 'pData' assigned to Register 'R6' ----
 00000004  ---- Variable 'i' assigned to Register 'R5' ----
 00000004  ---- Variable 'cnt' assigned to Register 'R4' ----
   53: {
 00000004            ; SCOPE-START
   61:   if ( portNum == 0 ) {
 00000004  1C38      MOV         R0,R7 ; portNum
 00000006  0600      LSL         R0,R0,#0x18 ; portNum
 00000008  0E00      LSR         R0,R0,#0x18
 0000000A  2800      CMP         R0,#0x0
 0000000C  D115      BNE         L_1  ; T=0x0000003A
   62:     pData = &USB2UARTBuf0[0];
 0000000E  4800      LDR         R6,=USB2UARTBuf0 ; USB2UARTBuf0
   63:     cnt = USB_ReadEP(0x02, pData);
 00000010  1C31      MOV         R1,R6 ; pData
 00000012  2002      MOV         R0,#0x2
 00000014  F7FF      BL          USB_ReadEP?T  ; T=0x0001  (1)
 00000016  FFF4      BL          USB_ReadEP?T  ; T=0x0001  (2)
 00000018  1C04      MOV         R4,R0 ; cnt
ARM COMPILER V2.31,  VCOMuser                                                              23/11/05  10:53:11  PAGE 14  

   74:     for ( i = 0; i < cnt; i++ ) {
 0000001A  2500      MOV         R5,#0x0
 0000001C  E008      B           L_4  ; T=0x00000030
 0000001E          L_5:
   75:           putchar( portNum, (BYTE)*pData );
 0000001E  1C30      MOV         R0,R6 ; pData
 00000020  7801      LDRB        R1,[R0,#0x0] ; pData
 00000022  1C38      MOV         R0,R7 ; portNum
 00000024  0600      LSL         R0,R0,#0x18 ; portNum
 00000026  0E00      LSR         R0,R0,#0x18
 00000028  F7FF      BL          putchar?T  ; T=0x0001  (1)
 0000002A  FFEA      BL          putchar?T  ; T=0x0001  (2)
   76:         pData++;
 0000002C  3601      ADD         R6,#0x1
   77:     }
 0000002E  3501      ADD         R5,#0x1
 00000030          L_4:
 00000030  1C21      MOV         R1,R4 ; cnt
 00000032  1C28      MOV         R0,R5 ; i
 00000034  4288      CMP         R0,R1 ; i
 00000036  D3F2      BCC         L_5  ; T=0x0000001E
   79:   }
 00000038  E019      B           L_7  ; T=0x0000006E
 0000003A          L_1:
   80:   else if ( portNum == 1 ) {
 0000003A  1C38      MOV         R0,R7 ; portNum
 0000003C  0600      LSL         R0,R0,#0x18 ; portNum
 0000003E  0E00      LSR         R0,R0,#0x18
 00000040  2801      CMP         R0,#0x1
 00000042  D114      BNE         L_7  ; T=0x0000006E
   81:     pData = &USB2UARTBuf1[0];
 00000044  4800      LDR         R6,=USB2UARTBuf1 ; USB2UARTBuf1
   82:     cnt = USB_ReadEP(0x05, pData);
 00000046  1C31      MOV         R1,R6 ; pData
 00000048  2005      MOV         R0,#0x5
 0000004A  F7FF      BL          USB_ReadEP?T  ; T=0x0001  (1)
 0000004C  FFD9      BL          USB_ReadEP?T  ; T=0x0001  (2)
 0000004E  1C04      MOV         R4,R0 ; cnt
   93:     for ( i = 0; i < cnt; i++ ) {
 00000050  2500      MOV         R5,#0x0
 00000052  E008      B           L_11  ; T=0x00000066
 00000054          L_12:
   94:           putchar( portNum, (BYTE)*pData );
 00000054  1C30      MOV         R0,R6 ; pData
 00000056  7801      LDRB        R1,[R0,#0x0] ; pData
 00000058  1C38      MOV         R0,R7 ; portNum
 0000005A  0600      LSL         R0,R0,#0x18 ; portNum
 0000005C  0E00      LSR         R0,R0,#0x18
 0000005E  F7FF      BL          putchar?T  ; T=0x0001  (1)
 00000060  FFCF      BL          putchar?T  ; T=0x0001  (2)
   95:         pData++;
 00000062  3601      ADD         R6,#0x1
   96:     }
 00000064  3501      ADD         R5,#0x1
 00000066          L_11:
 00000066  1C21      MOV         R1,R4 ; cnt
 00000068  1C28      MOV         R0,R5 ; i
 0000006A  4288      CMP         R0,R1 ; i
 0000006C  D3F2      BCC         L_12  ; T=0x00000054
   98:   }
 0000006E          L_7:
   99:   return;
 0000006E            ; SCOPE-END
  100: }
 0000006E  BCF0      POP         {R4-R7}
 00000070  BC08      POP         {R3}
ARM COMPILER V2.31,  VCOMuser                                                              23/11/05  10:53:11  PAGE 15  

 00000072  4718      BX          R3
 00000074          ENDP ; 'DeviceData2UART?T'


*** CODE SEGMENT '?PR?DeviceData2Host?T?VCOMuser':
  102: void DeviceData2Host( BYTE portNum )
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C04      MOV         R4,R0 ; portNum
 00000004  ---- Variable 'portNum' assigned to Register 'R4' ----
  109:   if ( portNum == 0 ) {
 00000004  1C20      MOV         R0,R4 ; portNum
 00000006  0605      LSL         R5,R0,#0x18 ; portNum
 00000008  0E2D      LSR         R5,R5,#0x18
 0000000A  2D00      CMP         R5,#0x0
 0000000C  D125      BNE         L_15  ; T=0x0000005A
  122:     if ( ((U0LSR & 0x01) == 1) && (RxLength0 < USB_VCOM_BUFSIZE) ) {
 0000000E  4800      LDR         R0,=0xE000C014
 00000010  7800      LDRB        R0,[R0,#0x0]
 00000012  2101      MOV         R1,#0x1
 00000014  4008      AND         R0,R1
 00000016  2801      CMP         R0,#0x1
 00000018  D112      BNE         L_16  ; T=0x00000040
 0000001A  4800      LDR         R0,=RxLength0 ; RxLength0
 0000001C  7800      LDRB        R0,[R0,#0x0] ; RxLength0
 0000001E  2804      CMP         R0,#0x4
 00000020  DA0E      BGE         L_16  ; T=0x00000040
  123:         UART2USBBuf0[RxLength0] = getchar( portNum );
 00000022  1C20      MOV         R0,R4 ; portNum
 00000024  0600      LSL         R0,R0,#0x18 ; portNum
 00000026  0E00      LSR         R0,R0,#0x18
 00000028  F7FF      BL          getchar?T  ; T=0x0001  (1)
 0000002A  FFEA      BL          getchar?T  ; T=0x0001  (2)
 0000002C  4800      LDR         R1,=RxLength0 ; RxLength0
 0000002E  7809      LDRB        R1,[R1,#0x0] ; RxLength0
 00000030  1C0A      MOV         R2,R1
 00000032  4800      LDR         R1,=UART2USBBuf0 ; UART2USBBuf0
 00000034  5488      STRB        R0,[R1,R2]
  124:         RxLength0++;
 00000036  4800      LDR         R0,=RxLength0 ; RxLength0
 00000038  7801      LDRB        R1,[R0,#0x0] ; RxLength0

⌨️ 快捷键说明

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