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

📄 vcomuser.lst

📁 针对飞利浦LPC214x的虚拟串口程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 0000004A  0E12      LSR         R2,R2,#0x18
  420:         U1LCR = lcr | ConfigValue;
 0000004C  1C08      MOV         R0,R1 ; ConfigValue
 0000004E  0600      LSL         R0,R0,#0x18 ; ConfigValue
 00000050  0E00      LSR         R0,R0,#0x18
 00000052  1C11      MOV         R1,R2 ; lcr
 00000054  0609      LSL         R1,R1,#0x18 ; lcr
 00000056  0E09      LSR         R1,R1,#0x18
 00000058  4301      ORR         R1,R0
 0000005A  0609      LSL         R1,R1,#0x18
 0000005C  0E09      LSR         R1,R1,#0x18
 0000005E  4800      LDR         R0,=0xE001000C
 00000060  7001      STRB        R1,[R0,#0x0]
  421:     }
 00000062          L_27:
 00000062            ; SCOPE-END
  422: }
 00000062  BC10      POP         {R4}
 00000064  4770      BX          R14
 00000066          ENDP ; 'SetSIODataBit?T'


*** CODE SEGMENT '?PR?SetSIOParity?T?VCOMuser':
  424: void SetSIOParity( BYTE channelNum, BYTE ConfigValue )
 00000000  B410      PUSH        {R4}
 00000002  ---- Variable 'ConfigValue' assigned to Register 'R1' ----
 00000002  1C03      MOV         R3,R0 ; channelNum
 00000004  ---- Variable 'channelNum' assigned to Register 'R3' ----
 00000004  ---- Variable 'lcr' assigned to Register 'R2' ----
  425: {
 00000004            ; SCOPE-START
  428:     if ( channelNum == 0 ) {
 00000004  1C18      MOV         R0,R3 ; channelNum
 00000006  0600      LSL         R0,R0,#0x18 ; channelNum
 00000008  0E00      LSR         R0,R0,#0x18
 0000000A  2800      CMP         R0,#0x0
 0000000C  D113      BNE         L_29  ; T=0x00000036
  429:         lcr = U0LCR & 0xCF;
 0000000E  4800      LDR         R0,=0xE000C00C
 00000010  7800      LDRB        R0,[R0,#0x0]
 00000012  1C02      MOV         R2,R0
 00000014  20CF      MOV         R0,#0xCF
 00000016  4002      AND         R2,R0
 00000018  0612      LSL         R2,R2,#0x18
 0000001A  0E12      LSR         R2,R2,#0x18
  430:         U0LCR = lcr | (ConfigValue << 4);
 0000001C  1C08      MOV         R0,R1 ; ConfigValue
 0000001E  0600      LSL         R0,R0,#0x18 ; ConfigValue
 00000020  0E00      LSR         R0,R0,#0x18
 00000022  0100      LSL         R0,R0,#0x4
 00000024  1C14      MOV         R4,R2 ; lcr
 00000026  0624      LSL         R4,R4,#0x18 ; lcr
 00000028  0E24      LSR         R4,R4,#0x18
 0000002A  4304      ORR         R4,R0
 0000002C  0624      LSL         R4,R4,#0x18
 0000002E  0E24      LSR         R4,R4,#0x18
 00000030  4800      LDR         R0,=0xE000C00C
ARM COMPILER V2.53,  VCOMuser                                                              09/06/07  15:42:25  PAGE 19  

 00000032  7004      STRB        R4,[R0,#0x0]
  431:     }
 00000034  E017      B           L_30  ; T=0x00000066
 00000036          L_29:
  432:     else if ( channelNum == 1 ) {
 00000036  1C18      MOV         R0,R3 ; channelNum
 00000038  0600      LSL         R0,R0,#0x18 ; channelNum
 0000003A  0E00      LSR         R0,R0,#0x18
 0000003C  2801      CMP         R0,#0x1
 0000003E  D112      BNE         L_30  ; T=0x00000066
  433:         lcr = U1LCR & 0xCF;
 00000040  4800      LDR         R0,=0xE001000C
 00000042  7800      LDRB        R0,[R0,#0x0]
 00000044  1C02      MOV         R2,R0
 00000046  20CF      MOV         R0,#0xCF
 00000048  4002      AND         R2,R0
 0000004A  0612      LSL         R2,R2,#0x18
 0000004C  0E12      LSR         R2,R2,#0x18
  434:         U1LCR = lcr | (ConfigValue << 4);
 0000004E  1C08      MOV         R0,R1 ; ConfigValue
 00000050  0600      LSL         R0,R0,#0x18 ; ConfigValue
 00000052  0E00      LSR         R0,R0,#0x18
 00000054  0100      LSL         R0,R0,#0x4
 00000056  1C11      MOV         R1,R2 ; lcr
 00000058  0609      LSL         R1,R1,#0x18 ; lcr
 0000005A  0E09      LSR         R1,R1,#0x18
 0000005C  4301      ORR         R1,R0
 0000005E  0609      LSL         R1,R1,#0x18
 00000060  0E09      LSR         R1,R1,#0x18
 00000062  4800      LDR         R0,=0xE001000C
 00000064  7001      STRB        R1,[R0,#0x0]
  435:     }
 00000066          L_30:
 00000066            ; SCOPE-END
  436: }
 00000066  BC10      POP         {R4}
 00000068  4770      BX          R14
 0000006A          ENDP ; 'SetSIOParity?T'


*** CODE SEGMENT '?PR?SetSIOFlowControl?T?VCOMuser':
  447: }
 00000000  4770      BX          R14
 00000002          ENDP ; 'SetSIOFlowControl?T'


*** CODE SEGMENT '?PR?SetSIODTR?T?VCOMuser':
  449: void SetSIODTR( BYTE channelNum, BYTE ConfigValue )
 00000000  ---- Variable 'ConfigValue' assigned to Register 'R1' ----
 00000000  1C02      MOV         R2,R0 ; channelNum
 00000002  ---- Variable 'channelNum' assigned to Register 'R2' ----
  450: {
 00000002            ; SCOPE-START
  453:     if ( channelNum == 1 ) {
 00000002  1C10      MOV         R0,R2 ; channelNum
 00000004  0600      LSL         R0,R0,#0x18 ; channelNum
 00000006  0E00      LSR         R0,R0,#0x18
 00000008  2801      CMP         R0,#0x1
 0000000A  D111      BNE         L_35  ; T=0x00000030
  454:         mcr = U1MCR & 0xFE;
 0000000C  4800      LDR         R0,=0xE0010010
 0000000E  7800      LDRB        R0,[R0,#0x0]
 00000010  1C02      MOV         R2,R0
 00000012  20FE      MOV         R0,#0xFE
 00000014  4002      AND         R2,R0
 00000016  0612      LSL         R2,R2,#0x18
 00000018  0E12      LSR         R2,R2,#0x18
 0000001A  ---- Variable 'mcr' assigned to Register 'R2' ----
  455:         U1MCR = mcr | ConfigValue;
 0000001A  1C08      MOV         R0,R1 ; ConfigValue
ARM COMPILER V2.53,  VCOMuser                                                              09/06/07  15:42:25  PAGE 20  

 0000001C  0600      LSL         R0,R0,#0x18 ; ConfigValue
 0000001E  0E00      LSR         R0,R0,#0x18
 00000020  1C11      MOV         R1,R2 ; mcr
 00000022  0609      LSL         R1,R1,#0x18 ; mcr
 00000024  0E09      LSR         R1,R1,#0x18
 00000026  4301      ORR         R1,R0
 00000028  0609      LSL         R1,R1,#0x18
 0000002A  0E09      LSR         R1,R1,#0x18
 0000002C  4800      LDR         R0,=0xE0010010
 0000002E  7001      STRB        R1,[R0,#0x0]
  456:     }
 00000030          L_35:
 00000030            ; SCOPE-END
  457: }
 00000030  4770      BX          R14
 00000032          ENDP ; 'SetSIODTR?T'


*** CODE SEGMENT '?PR?SetSIORTS?T?VCOMuser':
  459: void SetSIORTS( BYTE channelNum, BYTE ConfigValue )
 00000000  ---- Variable 'ConfigValue' assigned to Register 'R1' ----
 00000000  1C02      MOV         R2,R0 ; channelNum
 00000002  ---- Variable 'channelNum' assigned to Register 'R2' ----
  460: {
 00000002            ; SCOPE-START
  464:     if ( channelNum == 1 ) {
 00000002  1C10      MOV         R0,R2 ; channelNum
 00000004  0600      LSL         R0,R0,#0x18 ; channelNum
 00000006  0E00      LSR         R0,R0,#0x18
 00000008  2801      CMP         R0,#0x1
 0000000A  D112      BNE         L_36  ; T=0x00000032
  465:         mcr = U1MCR & 0xFD;
 0000000C  4800      LDR         R0,=0xE0010010
 0000000E  7800      LDRB        R0,[R0,#0x0]
 00000010  1C02      MOV         R2,R0
 00000012  20FD      MOV         R0,#0xFD
 00000014  4002      AND         R2,R0
 00000016  0612      LSL         R2,R2,#0x18
 00000018  0E12      LSR         R2,R2,#0x18
 0000001A  ---- Variable 'mcr' assigned to Register 'R2' ----
  466:         U1MCR = mcr | (ConfigValue << 1);
 0000001A  1C08      MOV         R0,R1 ; ConfigValue
 0000001C  0600      LSL         R0,R0,#0x18 ; ConfigValue
 0000001E  0E00      LSR         R0,R0,#0x18
 00000020  0040      LSL         R0,R0,#0x1
 00000022  1C11      MOV         R1,R2 ; mcr
 00000024  0609      LSL         R1,R1,#0x18 ; mcr
 00000026  0E09      LSR         R1,R1,#0x18
 00000028  4301      ORR         R1,R0
 0000002A  0609      LSL         R1,R1,#0x18
 0000002C  0E09      LSR         R1,R1,#0x18
 0000002E  4800      LDR         R0,=0xE0010010
 00000030  7001      STRB        R1,[R0,#0x0]
  467:     }
 00000032          L_36:
 00000032            ; SCOPE-END
  468: }
 00000032  4770      BX          R14
 00000034          ENDP ; 'SetSIORTS?T'


*** CODE SEGMENT '?PR?GetSIOModemStatus?T?VCOMuser':
  473: }
 00000000  4770      BX          R14
 00000002          ENDP ; 'GetSIOModemStatus?T'


*** CODE SEGMENT '?PR?VCOM_GetSIOSetup?T?VCOMuser':
  483:     return (TRUE);  
 00000000  2001      MOV         R0,#0x1
  484: }
 00000002  4770      BX          R14
ARM COMPILER V2.53,  VCOMuser                                                              09/06/07  15:42:25  PAGE 21  

 00000004          ENDP ; 'VCOM_GetSIOSetup?T'


*** CODE SEGMENT '?PR?VCOM_SetSIOSetup?T?VCOMuser':
  493: BOOL VCOM_SetSIOSetup( BYTE Cmd, BYTE Data ) {
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C0D      MOV         R5,R1 ; Data
 00000004  ---- Variable 'Data' assigned to Register 'R5' ----
 00000004  1C01      MOV         R1,R0 ; Cmd
 00000006  ---- Variable 'Cmd' assigned to Register 'R1' ----
 00000006  ---- Variable 'ChannelNum' assigned to Register 'R4' ----
 00000006            ; SCOPE-START
  499:     if ( !(Cmd & 0x20) )
 00000006  1C08      MOV         R0,R1 ; Cmd
 00000008  0600      LSL         R0,R0,#0x18 ; Cmd
 0000000A  0E00      LSR         R0,R0,#0x18
 0000000C  2220      MOV         R2,#0x20
 0000000E  4210      TST         R0,R2
 00000010  D101      BNE         L_38  ; T=0x00000016
  500:         ChannelNum = 0;
 00000012  2400      MOV         R4,#0x0
 00000014  E000      B           L_39  ; T=0x00000018
 00000016          L_38:
  502:         ChannelNum = 1;
 00000016  2401      MOV         R4,#0x1
 00000018          L_39:
  504:     Cmd &= ~0x20;           /* clear bit 5, use all cmd for channel 0 */
 00000018  20DF      MOV         R0,#0xDF
 0000001A  4001      AND         R1,R0
  505:     switch ( Cmd ) {
 0000001C  1C08      MOV         R0,R1 ; Cmd
 0000001E  2804      CMP         R0,#0x4 ; Cmd
 00000020  D018      BEQ         L_43  ; T=0x00000054
 00000022  2805      CMP         R0,#0x5 ; Cmd
 00000024  D01F      BEQ         L_44  ; T=0x00000066
 00000026  2806      CMP         R0,#0x6 ; Cmd
 00000028  D026      BEQ         L_45  ; T=0x00000078
 0000002A  2807      CMP         R0,#0x7 ; Cmd
 0000002C  D02D      BEQ         L_46  ; T=0x0000008A
 0000002E  2808      CMP         R0,#0x8 ; Cmd
 00000030  D034      BEQ         L_47  ; T=0x0000009C
 00000032  2809      CMP         R0,#0x9 ; Cmd
 00000034  D03B      BEQ         L_48  ; T=0x000000AE
 00000036  280B      CMP         R0,#0xB ; Cmd
 00000038  D04A      BEQ         L_40  ; T=0x000000D0
 0000003A  280C      CMP         R0,#0xC ; Cmd
 0000003C  D040      BEQ         L_50  ; T=0x000000C0
 0000003E  2803      CMP         R0,#0x3 ; Cmd
 00000040  D144      BNE         L_42  ; T=0x000000CC
  506:     case BAUDRATE_SETUP:
 00000042          L_41:
  507:         SetSIOBaudrate( ChannelNum, Data );
 00000042  1C20      MOV         R0,R4 ; ChannelNum
 00000044  0600      LSL         R0,R0,#0x18 ; ChannelNum
 00000046  0E00      LSR         R0,R0,#0x18
 00000048  1C29      MOV         R1,R5 ; Data
 0000004A  0609      LSL         R1,R1,#0x18 ; Data
 0000004C  0E09      LSR         R1,R1,#0x18
 0000004E  F7FF      BL          SetSIOBaudrate?T  ; T=0x0001  (1)
 00000050  FFD7      BL          SetSIOBaudrate?T  ; T=0x0001  (2)
  508:         break;
 00000052  E03D      B           L_40  ; T=0x000000D0
  509:     case STOPBIT_SETUP:
 00000054          L_43:
  510:         SetSIOStopBit( ChannelNum, Data );
 00000054  1C20      MOV         R0,R4 ; ChannelNum
 00000056  0600      LSL         R0,R0,#0x18 ; ChannelNum
 00000058  0E00      LSR         R0,R0,#0x18
ARM COMPILER V2.53,  VCOMuser                                                              09/06/07  15:42:25  PAGE 22  

 0000005A  1C29      MOV         R1,R5 ; Data
 0000005C  0609      LSL         R1,R1,#0x18 ; Data
 0000005E  0E09      LSR         R1,R1,#0x18
 00000060  F7FF      BL          SetSIOStopBit?T  ; T=0x0001  (1)
 00000062  FFCE      BL          SetSIOStopBit?T  ; T=0x0001  (2)
  511:         break;          
 00000064  E034      B           L_40  ; T=0x000000D0
  512:     case DATABIT_SETUP:
 00000066          L_44:
  513:         SetSIODataBit( ChannelNum, Data );
 00000066  1C20      MOV         R0,R4 ; ChannelNum
 00000068  0600      LSL         R0,R0,#0x18 ; ChannelNum
 0000006A  0E00      LSR         R0,R0,#0x18
 0000006C  1C29      MOV         R1,R5 ; Data
 0000006E  0609      LSL         R1,R1,#0x18 ; Data
 00000070  0E09      LSR         R1,R1,#0x18
 00000072  F7FF      BL          SetSIODataBit?T  ; T=0x0001  (1)
 00000074  FFC5      BL          SetSIODataBit?T  ; T=0x0001  (2)
  514:         break;
 00000076  E02B      B           L_40  ; T=0x000000D0
  515:     case PARITY_SETUP:
 00000078          L_45:
  516:         SetSIOParity( ChannelNum, Data );
 00000078  1C20      MOV         R0,R4 ; ChannelNum
 0000007A  0600      LSL         R0,R0,#0x18 ; ChannelNum
 0000007C  0E00      LSR         R0,R0,#0x18
 0000007E  1C29      MOV         R1,R5 ; Data
 00000080  0609      LSL         R1,R1,#0x18 ; Data
 00000082  0E09      LSR         R1,R1,#0x18
 00000084  F7FF      BL          SetSIOParity?T  ; T=0x0001  (1)
 00000086  FFBC      BL          SetSIOParity?T  ; T=0x0001  (2)
  517:         break;
 00000088  E022      B           L_40  ; T=0x000000D0
  518:     case FLOWCTRL_SETUP:
 0000008A          L_46:
  519:         SetSIOFlowControl( ChannelNum, Data );
 0000008A  1C20      MOV         R0,R4 ; ChannelNum
 0000008C  0600      LSL         R0,R0,#0x18 ; ChannelNum
 0000008E  0E00      LSR         R0,R0,#0x18
 00000090  1C29      MOV         R1,R5 ; Data
 00000092  0609      LSL         R1,R1,#0x18 ; Data
 00000094  0E09      LSR         R1,R1,#0x18
 00000096  F7FF      BL          SetSIOFlowControl?T  ; T=0x0001  (1)
 00000098  FFB3      BL          SetSIOFlowControl?T  ; T=0x0001  (2)
  520:         break;
 0000009A  E019      B           L_40  ; T=0x000000D0
  521:     case DTR_SETUP:
 0000009C          L_47:
  522:         SetSIODTR( ChannelNum, Data );
 0000009C  1C20      MOV         R0,R4 ; ChannelNum
 0000009E  0600      LSL         R0,R0,#0x18 ; ChannelNum
 000000A0  0E00      LSR         R0,R0,#0x18
 000000A2  1C29      MOV         R1,R5 ; Data
 000000A4  0609      LSL         R1,R1,#0x18 ; Data
 000000A6  0E09      LSR         R1,R1,#0x18
 000000A8  F7FF      BL          SetSIODTR?T  ; T=0x0001  (1)
 000000AA  FFAA      BL          SetSIODTR?T  ; T=0x0001  (2)
  523:         break;
 000000AC  E010      B           L_40  ; T=0x000000D0
  524:     case RTS_SETUP:
 000000AE          L_48:
  525:         SetSIORTS( ChannelNum, Data );
 000000AE  1C20      MOV         R0,R4 ; ChannelNum
 000000B0  0600      LSL         R0,R0,#0x18 ; ChannelNum
 000000B2  0E00      LSR         R0,R0,#0x18
 000000B4  1C29      MOV         R1,R5 ; Data
ARM COMPILER V2.53,  VCOMuser                                                              09/06/07  15:42:25  PAGE 23  

 000000B6  0609      LSL         R1,R1,#0x18 ; Data
 000000B8  0E09      LSR         R1,R1,#0x18
 000000BA  F7FF      BL          SetSIORTS?T  ; T=0x0001  (1)
 000000BC  FFA1      BL          SetSIORTS?T  ; T=0x0001  (2)
  526:         break;
 000000BE  E007      B           L_40  ; T=0x000000D0
  529:     case MODEM_SETUP:
 000000C0          L_50:
  530:         GetSIOModemStatus( ChannelNum );
 000000C0  1C20      MOV         R0,R4 ; ChannelNum
 000000C2  0600      LSL         R0,R0,#0x18 ; ChannelNum
 000000C4  0E00      LSR         R0,R0,#0x18
 000000C6  F7FF      BL          GetSIOModemStatus?T  ; T=0x0001  (1)
 000000C8  FF9B      BL          GetSIOModemStatus?T  ; T=0x0001  (2)
  531:         break;
 000000CA  E001      B           L_40  ; T=0x000000D0
  532:     default:
 000000CC          L_42:
  535:         return (FALSE);
 000000CC  2000      MOV         R0,#0x0
 000000CE  E000      B           L_51  ; T=0x000000D2
  536:     }
 000000D0          L_40:
  537:     return (TRUE);
 000000D0  2001      MOV         R0,#0x1
 000000D2            ; SCOPE-END
  538: }
 000000D2          L_51:
 000000D2  BC30      POP         {R4-R5}
 000000D4  BC08      POP         {R3}
 000000D6  4718      BX          R3
 000000D8          ENDP ; 'VCOM_SetSIOSetup?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =        68
  const size           =    ------
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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