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

📄 vcomuser.lst

📁 NXP产品LPC23XX的开发板的源文件
💻 LST
📖 第 1 页 / 共 5 页
字号:
 00000014  7800      LDRB        R0,[R0,#0x0]
 00000016  2220      MOV         R2,#0x20
 00000018  4210      TST         R0,R2
 0000001A  D0FA      BEQ         L_34  ; T=0x00000012
  477:         U0THR = CR;                          /* output CR */
 0000001C  220D      MOV         R2,#0xD
 0000001E  4800      LDR         R0,=0xE000C000
ARM COMPILER V2.31,  VCOMuser                                                              23/11/05  10:53:11  PAGE 20  

 00000020  7002      STRB        R2,[R0,#0x0]
  479:     while (!(U0LSR & 0x20));
 00000022          L_41:
 00000022          L_38:
 00000022  4800      LDR         R0,=0xE000C014
 00000024  7800      LDRB        R0,[R0,#0x0]
 00000026  2220      MOV         R2,#0x20
 00000028  4210      TST         R0,R2
 0000002A  D0FA      BEQ         L_38  ; T=0x00000022
  480:     return (U0THR = ch);
 0000002C  1C08      MOV         R0,R1 ; ch
 0000002E  4800      LDR         R2,=0xE000C000
 00000030  7010      STRB        R0,[R2,#0x0]
 00000032  0600      LSL         R0,R0,#0x18
 00000034  0E00      LSR         R0,R0,#0x18
 00000036  E014      B           L_42  ; T=0x00000062
  481:   }
 00000038          L_32:
  483:     if (ch == '\n')  {
 00000038  1C08      MOV         R0,R1 ; ch
 0000003A  280A      CMP         R0,#0xA ; ch
 0000003C  D107      BNE         L_52  ; T=0x0000004E
  484:         while (!(U1LSR & 0x20));
 0000003E          L_45:
 0000003E  4800      LDR         R0,=0xE0010014
 00000040  7800      LDRB        R0,[R0,#0x0]
 00000042  2220      MOV         R2,#0x20
 00000044  4210      TST         R0,R2
 00000046  D0FA      BEQ         L_45  ; T=0x0000003E
  485:         U1THR = CR;                          /* output CR */
 00000048  220D      MOV         R2,#0xD
 0000004A  4800      LDR         R0,=0xE0010000
 0000004C  7002      STRB        R2,[R0,#0x0]
  487:     while (!(U1LSR & 0x20));
 0000004E          L_52:
 0000004E          L_49:
 0000004E  4800      LDR         R0,=0xE0010014
 00000050  7800      LDRB        R0,[R0,#0x0]
 00000052  2220      MOV         R2,#0x20
 00000054  4210      TST         R0,R2
 00000056  D0FA      BEQ         L_49  ; T=0x0000004E
  488:     return (U1THR = ch);
 00000058  1C08      MOV         R0,R1 ; ch
 0000005A  4800      LDR         R1,=0xE0010000
 0000005C  7008      STRB        R0,[R1,#0x0]
 0000005E  0600      LSL         R0,R0,#0x18
 00000060  0E00      LSR         R0,R0,#0x18
  490: }
 00000062          L_42:
 00000062  4770      BX          R14
 00000064          ENDP ; 'putchar?T'


*** CODE SEGMENT '?PR?getchar?T?VCOMuser':
  492: int getchar ( BYTE portNum )  {                    /* Read character from Serial Port   */
 00000000  1C01      MOV         R1,R0 ; portNum
 00000002  ---- Variable 'portNum' assigned to Register 'R1' ----
  494:   if ( portNum == 0 ) {
 00000002  1C08      MOV         R0,R1 ; portNum
 00000004  0600      LSL         R0,R0,#0x18 ; portNum
 00000006  0E00      LSR         R0,R0,#0x18
 00000008  2800      CMP         R0,#0x0
 0000000A  D107      BNE         L_63  ; T=0x0000001C
  495:     while (!(U0LSR & 0x01));
 0000000C          L_54:
 0000000C  4800      LDR         R0,=0xE000C014
 0000000E  7800      LDRB        R0,[R0,#0x0]
 00000010  2101      MOV         R1,#0x1
ARM COMPILER V2.31,  VCOMuser                                                              23/11/05  10:53:11  PAGE 21  

 00000012  4208      TST         R0,R1
 00000014  D0FA      BEQ         L_54  ; T=0x0000000C
  496:       return (U0RBR);
 00000016  4800      LDR         R0,=0xE000C000
 00000018  7800      LDRB        R0,[R0,#0x0]
 0000001A  E006      B           L_58  ; T=0x0000002A
  499:     while (!(U1LSR & 0x01));
 0000001C          L_63:
 0000001C          L_60:
 0000001C  4800      LDR         R0,=0xE0010014
 0000001E  7800      LDRB        R0,[R0,#0x0]
 00000020  2101      MOV         R1,#0x1
 00000022  4208      TST         R0,R1
 00000024  D0FA      BEQ         L_60  ; T=0x0000001C
  500:       return (U1RBR);
 00000026  4800      LDR         R0,=0xE0010000
 00000028  7800      LDRB        R0,[R0,#0x0]
  502: }
 0000002A          L_58:
 0000002A  4770      BX          R14
 0000002C          ENDP ; 'getchar?T'


*** CODE SEGMENT '?PR?SetSIOBaudrate?T?VCOMuser':
  505: void SetSIOBaudrate( BYTE channelNum, BYTE Data )
 00000000  B430      PUSH        {R4-R5}
 00000002  1C0B      MOV         R3,R1 ; Data
 00000004  ---- Variable 'Data' assigned to Register 'R3' ----
 00000004  1C05      MOV         R5,R0 ; channelNum
 00000006  ---- Variable 'channelNum' assigned to Register 'R5' ----
  514:   if ( channelNum == 0 ) {
 00000006  1C28      MOV         R0,R5 ; channelNum
 00000008  0600      LSL         R0,R0,#0x18 ; channelNum
 0000000A  0E00      LSR         R0,R0,#0x18
 0000000C  2800      CMP         R0,#0x0
 0000000E  D13C      BNE         L_64  ; T=0x0000008A
  515:     U0FCR = 0x07;                  /* Enable and reset TX and RX FIFO. */
 00000010  2207      MOV         R2,#0x7
 00000012  4800      LDR         R1,=0xE000C008
 00000014  700A      STRB        R2,[R1,#0x0]
  516:     U0LCR |= 0x80;  
 00000016  2480      MOV         R4,#0x80
 00000018  4800      LDR         R1,=0xE000C00C
 0000001A  780A      LDRB        R2,[R1,#0x0]
 0000001C  4322      ORR         R2,R4
 0000001E  700A      STRB        R2,[R1,#0x0]
  517:     if ( Data == 0x01 ) {
 00000020  1C19      MOV         R1,R3 ; Data
 00000022  0609      LSL         R1,R1,#0x18 ; Data
 00000024  0E09      LSR         R1,R1,#0x18
 00000026  2901      CMP         R1,#0x1
 00000028  D106      BNE         L_65  ; T=0x00000038
  518:         U0DLL = 0x20;
 0000002A  2420      MOV         R4,#0x20
 0000002C  4800      LDR         R2,=0xE000C000
 0000002E  7014      STRB        R4,[R2,#0x0]
  519:         U0DLM = 0x00;
 00000030  2400      MOV         R4,#0x0
 00000032  4800      LDR         R2,=0xE000C004
 00000034  7014      STRB        R4,[R2,#0x0]
  520:     }
 00000036  E022      B           L_66  ; T=0x0000007E
 00000038          L_65:
  521:     else if ( Data == 0x02 ) {
 00000038  2902      CMP         R1,#0x2
 0000003A  D106      BNE         L_67  ; T=0x0000004A
  522:         U0DLL = 0x41;
 0000003C  2441      MOV         R4,#0x41
ARM COMPILER V2.31,  VCOMuser                                                              23/11/05  10:53:11  PAGE 22  

 0000003E  4800      LDR         R2,=0xE000C000
 00000040  7014      STRB        R4,[R2,#0x0]
  523:         U0DLM = 0x00;
 00000042  2400      MOV         R4,#0x0
 00000044  4800      LDR         R2,=0xE000C004
 00000046  7014      STRB        R4,[R2,#0x0]
  524:     }
 00000048  E019      B           L_66  ; T=0x0000007E
 0000004A          L_67:
  525:     else if ( Data == 0x03 ) {
 0000004A  2903      CMP         R1,#0x3
 0000004C  D106      BNE         L_69  ; T=0x0000005C
  526:         U0DLL = 0x61;
 0000004E  2461      MOV         R4,#0x61
 00000050  4800      LDR         R2,=0xE000C000
 00000052  7014      STRB        R4,[R2,#0x0]
  527:         U0DLM = 0x00;
 00000054  2400      MOV         R4,#0x0
 00000056  4800      LDR         R2,=0xE000C004
 00000058  7014      STRB        R4,[R2,#0x0]
  528:     }
 0000005A  E010      B           L_66  ; T=0x0000007E
 0000005C          L_69:
  529:     else if ( Data == 0x06 ) {
 0000005C  2906      CMP         R1,#0x6
 0000005E  D106      BNE         L_71  ; T=0x0000006E
  530:         U0DLL = 0xC3;
 00000060  24C3      MOV         R4,#0xC3
 00000062  4800      LDR         R2,=0xE000C000
 00000064  7014      STRB        R4,[R2,#0x0]
  531:         U0DLM = 0x00;
 00000066  2400      MOV         R4,#0x0
 00000068  4800      LDR         R2,=0xE000C004
 0000006A  7014      STRB        R4,[R2,#0x0]
  532:     }
 0000006C  E007      B           L_66  ; T=0x0000007E
 0000006E          L_71:
  533:     else if ( Data == 0x0C ) {
 0000006E  290C      CMP         R1,#0xC
 00000070  D105      BNE         L_66  ; T=0x0000007E
  534:         U0DLL = 0x86;
 00000072  2286      MOV         R2,#0x86
 00000074  4800      LDR         R1,=0xE000C000
 00000076  700A      STRB        R2,[R1,#0x0]
  535:         U0DLM = 0x01;
 00000078  2201      MOV         R2,#0x1
 0000007A  4800      LDR         R1,=0xE000C004
 0000007C  700A      STRB        R2,[R1,#0x0]
  536:     }     
 0000007E          L_66:
  537:     U0LCR &= ~0x80;
 0000007E  247F      MOV         R4,#0x7F
 00000080  4800      LDR         R1,=0xE000C00C
 00000082  780A      LDRB        R2,[R1,#0x0]
 00000084  4022      AND         R2,R4
 00000086  700A      STRB        R2,[R1,#0x0]
  538:   }
 00000088  E03D      B           L_74  ; T=0x00000106
 0000008A          L_64:
  539:   else if ( channelNum == 1 ) {
 0000008A  2801      CMP         R0,#0x1
 0000008C  D13B      BNE         L_74  ; T=0x00000106
  540:     U1FCR = 0x07;                  /* Enable and reset TX and RX FIFO. */
 0000008E  2107      MOV         R1,#0x7
 00000090  4800      LDR         R0,=0xE0010008
 00000092  7001      STRB        R1,[R0,#0x0]
ARM COMPILER V2.31,  VCOMuser                                                              23/11/05  10:53:11  PAGE 23  

  541:     U1LCR |= 0x80;
 00000094  2280      MOV         R2,#0x80
 00000096  4800      LDR         R0,=0xE001000C
 00000098  7801      LDRB        R1,[R0,#0x0]
 0000009A  4311      ORR         R1,R2
 0000009C  7001      STRB        R1,[R0,#0x0]
  542:     if ( Data == 0x01 ) {
 0000009E  1C18      MOV         R0,R3 ; Data
 000000A0  0600      LSL         R0,R0,#0x18 ; Data
 000000A2  0E00      LSR         R0,R0,#0x18
 000000A4  2801      CMP         R0,#0x1
 000000A6  D106      BNE         L_76  ; T=0x000000B6
  543:         U1DLL = 0x20;
 000000A8  2220      MOV         R2,#0x20
 000000AA  4800      LDR         R1,=0xE0010000
 000000AC  700A      STRB        R2,[R1,#0x0]
  544:         U1DLM = 0x00;
 000000AE  2200      MOV         R2,#0x0
 000000B0  4800      LDR         R1,=0xE0010004
 000000B2  700A      STRB        R2,[R1,#0x0]
  545:     }
 000000B4  E022      B           L_77  ; T=0x000000FC
 000000B6          L_76:
  546:     else if ( Data == 0x02 ) {
 000000B6  2802      CMP         R0,#0x2
 000000B8  D106      BNE         L_78  ; T=0x000000C8
  547:         U1DLL = 0x41;
 000000BA  2241      MOV         R2,#0x41
 000000BC  4800      LDR         R1,=0xE0010000
 000000BE  700A      STRB        R2,[R1,#0x0]
  548:         U1DLM = 0x00;
 000000C0  2200      MOV         R2,#0x0
 000000C2  4800      LDR         R1,=0xE0010004
 000000C4  700A      STRB        R2,[R1,#0x0]
  549:     }
 000000C6  E019      B           L_77  ; T=0x000000FC
 000000C8          L_78:
  550:     else if ( Data == 0x03 ) {
 000000C8  2803      CMP         R0,#0x3
 000000CA  D106      BNE         L_80  ; T=0x000000DA
  551:         U1DLL = 0x61;
 000000CC  2261      MOV         R2,#0x61
 000000CE  4800      LDR         R1,=0xE0010000
 000000D0  700A      STRB        R2,[R1,#0x0]
  552:         U1DLM = 0x00;
 000000D2  2200      MOV         R2,#0x0
 000000D4  4800      LDR         R1,=0xE0010004
 000000D6  700A      STRB        R2,[R1,#0x0]
  553:     }
 000000D8  E010      B           L_77  ; T=0x000000FC
 000000DA          L_80:
  554:     else if ( Data == 0x06 ) {
 000000DA  2806      CMP         R0,#0x6
 000000DC  D106      BNE         L_82  ; T=0x000000EC
  555:         U1DLL = 0xC3;
 000000DE  22C3      MOV         R2,#0xC3
 000000E0  4800      LDR         R1,=0xE0010000
 000000E2  700A      STRB        R2,[R1,#0x0]
  556:         U1DLM = 0x00;
 000000E4  2200      MOV         R2,#0x0
 000000E6  4800      LDR         R1,=0xE0010004
 000000E8  700A      STRB        R2,[R1,#0x0]
  557:     }
 000000EA  E007      B           L_77  ; T=0x000000FC
 000000EC          L_82:
  558:     else if ( Data == 0x0C ) {
ARM COMPILER V2.31,  VCOMuser                                                              23/11/05  10:53:11  PAGE 24  

 000000EC  280C      CMP         R0,#0xC
 000000EE  D105      BNE         L_77  ; T=0x000000FC
  559:         U1DLL = 0x86;
 000000F0  2186      MOV         R1,#0x86
 000000F2  4800      LDR         R0,=0xE0010000
 000000F4  7001      STRB        R1,[R0,#0x0]
  560:         U1DLM = 0x01;
 000000F6  2101      MOV         R1,#0x1
 000000F8  4800      LDR         R0,=0xE0010004
 000000FA  7001      STRB        R1,[R0,#0x0]
  561:     }
 000000FC          L_77:
  562:     U1LCR &= ~0x80;
 000000FC  227F      MOV         R2,#0x7F
 000000FE  4800      LDR         R0,=0xE001000C
 00000100  7801      LDRB        R1,[R0,#0x0]
 00000102  4011      AND         R1,R2
 00000104  7001      STRB        R1,[R0,#0x0]
  563:   }
 00000106          L_74:
  564: }
 00000106  BC30      POP         {R4-R5}
 00000108  4770      BX          R14
 0000010A          ENDP ; 'SetSIOBaudrate?T'


*** CODE SEGMENT '?PR?SetSIOStopBit?T?VCOMuser':
  566: void SetSIOStopBit( BYTE channelNum, BYTE ConfigValue )
 00000000  B430      PUSH        {R4-R5}
 00000002  ---- Variable 'ConfigValue' assigned to Register 'R1' ----
 00000002  1C05      MOV         R5,R0 ; channelNum
 00000004  ---- Variable 'channelNum' assigned to Register 'R5' ----
 00000004  ---- Variable 'lcr' assigned to Register 'R2' ----
  567: {
 00000004            ; SCOPE-START
  571:   if ( channelNum == 0 ) {
 00000004  1C28      MOV         R0,R5 ; channelNum
 00000006  0600      LSL         R0,R0,#0x18 ; channelNum
 00000008  0E00      LSR         R0,R0,#0x18
 0000000A  2800      CMP         R0,#0x0
 0000000C  D10E      BNE         L_85  ; T=0x0000002C
  572:     lcr = U0LCR & 0xFB;
 0000000E  4800      LDR         R2,=0xE000C00C
 00000010  7812      LDRB       

⌨️ 快捷键说明

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