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

📄 vcomuser.lst

📁 LPC214X例程全包括,代码大全
💻 LST
📖 第 1 页 / 共 5 页
字号:
 00000004  0600      LSL         R0,R0,#0x18 ; portNum
 00000006  0E00      LSR         R0,R0,#0x18
 00000008  2800      CMP         R0,#0x0
 0000000A  D117      BNE         L_32  ; T=0x0000003C
  475:     if (ch == '\n')  {
 0000000C  1C08      MOV         R0,R1 ; ch
 0000000E  280A      CMP         R0,#0xA ; ch
 00000010  D107      BNE         L_41  ; T=0x00000022
  476:         while (!(U0LSR & 0x20));
 00000012          L_34:
 00000012  4800      LDR         R0,=0xE000C014
 00000014  7800      LDRB        R0,[R0,#0x0]
 00000016  2220      MOV         R2,#0x20
 00000018  4210      TST         R0,R2
 0000001A  D0FA      BEQ         L_34  ; T=0x00000012
ARM COMPILER V2.50a,  VCOMuser                                                             14/02/06  09:59:08  PAGE 20  

  477:         U0THR = CR;                          /* output CR */
 0000001C  220D      MOV         R2,#0xD
 0000001E  4800      LDR         R0,=0xE000C000
 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  0600      LSL         R0,R0,#0x18 ; ch
 00000030  0E00      LSR         R0,R0,#0x18
 00000032  4800      LDR         R2,=0xE000C000
 00000034  7010      STRB        R0,[R2,#0x0]
 00000036  0600      LSL         R0,R0,#0x18
 00000038  0E00      LSR         R0,R0,#0x18
 0000003A  E016      B           L_42  ; T=0x0000006A
  481:   }
 0000003C          L_32:
  483:     if (ch == '\n')  {
 0000003C  1C08      MOV         R0,R1 ; ch
 0000003E  280A      CMP         R0,#0xA ; ch
 00000040  D107      BNE         L_52  ; T=0x00000052
  484:         while (!(U1LSR & 0x20));
 00000042          L_45:
 00000042  4800      LDR         R0,=0xE0010014
 00000044  7800      LDRB        R0,[R0,#0x0]
 00000046  2220      MOV         R2,#0x20
 00000048  4210      TST         R0,R2
 0000004A  D0FA      BEQ         L_45  ; T=0x00000042
  485:         U1THR = CR;                          /* output CR */
 0000004C  220D      MOV         R2,#0xD
 0000004E  4800      LDR         R0,=0xE0010000
 00000050  7002      STRB        R2,[R0,#0x0]
  487:     while (!(U1LSR & 0x20));
 00000052          L_52:
 00000052          L_49:
 00000052  4800      LDR         R0,=0xE0010014
 00000054  7800      LDRB        R0,[R0,#0x0]
 00000056  2220      MOV         R2,#0x20
 00000058  4210      TST         R0,R2
 0000005A  D0FA      BEQ         L_49  ; T=0x00000052
  488:     return (U1THR = ch);
 0000005C  1C08      MOV         R0,R1 ; ch
 0000005E  0600      LSL         R0,R0,#0x18 ; ch
 00000060  0E00      LSR         R0,R0,#0x18
 00000062  4800      LDR         R1,=0xE0010000
 00000064  7008      STRB        R0,[R1,#0x0]
 00000066  0600      LSL         R0,R0,#0x18
 00000068  0E00      LSR         R0,R0,#0x18
  490: }
 0000006A          L_42:
 0000006A  4770      BX          R14
 0000006C          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
ARM COMPILER V2.50a,  VCOMuser                                                             14/02/06  09:59:08  PAGE 21  

 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
 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  B410      PUSH        {R4}
 00000002  ---- Variable 'Data' assigned to Register 'R1' ----
 00000002  1C02      MOV         R2,R0 ; channelNum
 00000004  ---- Variable 'channelNum' assigned to Register 'R2' ----
  514:   if ( channelNum == 0 ) {
 00000004  1C10      MOV         R0,R2 ; channelNum
 00000006  0600      LSL         R0,R0,#0x18 ; channelNum
 00000008  0E00      LSR         R0,R0,#0x18
 0000000A  2800      CMP         R0,#0x0
 0000000C  D148      BNE         L_64  ; T=0x000000A0
  515:     U0FCR = 0x07;                  /* Enable and reset TX and RX FIFO. */
 0000000E  2307      MOV         R3,#0x7
 00000010  4800      LDR         R0,=0xE000C008
 00000012  7003      STRB        R3,[R0,#0x0]
  516:     U0LCR |= 0x80;  
 00000014  2480      MOV         R4,#0x80
 00000016  4800      LDR         R0,=0xE000C00C
 00000018  7803      LDRB        R3,[R0,#0x0]
 0000001A  4323      ORR         R3,R4
 0000001C  7003      STRB        R3,[R0,#0x0]
  517:     if ( Data == 0x01 ) {
 0000001E  1C08      MOV         R0,R1 ; Data
 00000020  0600      LSL         R0,R0,#0x18 ; Data
 00000022  0E00      LSR         R0,R0,#0x18
 00000024  2801      CMP         R0,#0x1
 00000026  D106      BNE         L_65  ; T=0x00000036
  518:         U0DLL = 0x20;
 00000028  2320      MOV         R3,#0x20
 0000002A  4800      LDR         R0,=0xE000C000
 0000002C  7003      STRB        R3,[R0,#0x0]
  519:         U0DLM = 0x00;
 0000002E  2300      MOV         R3,#0x0
 00000030  4800      LDR         R0,=0xE000C004
 00000032  7003      STRB        R3,[R0,#0x0]
  520:     }
 00000034  E02E      B           L_66  ; T=0x00000094
ARM COMPILER V2.50a,  VCOMuser                                                             14/02/06  09:59:08  PAGE 22  

 00000036          L_65:
  521:     else if ( Data == 0x02 ) {
 00000036  1C08      MOV         R0,R1 ; Data
 00000038  0600      LSL         R0,R0,#0x18 ; Data
 0000003A  0E00      LSR         R0,R0,#0x18
 0000003C  2802      CMP         R0,#0x2
 0000003E  D106      BNE         L_67  ; T=0x0000004E
  522:         U0DLL = 0x41;
 00000040  2341      MOV         R3,#0x41
 00000042  4800      LDR         R0,=0xE000C000
 00000044  7003      STRB        R3,[R0,#0x0]
  523:         U0DLM = 0x00;
 00000046  2300      MOV         R3,#0x0
 00000048  4800      LDR         R0,=0xE000C004
 0000004A  7003      STRB        R3,[R0,#0x0]
  524:     }
 0000004C  E022      B           L_66  ; T=0x00000094
 0000004E          L_67:
  525:     else if ( Data == 0x03 ) {
 0000004E  1C08      MOV         R0,R1 ; Data
 00000050  0600      LSL         R0,R0,#0x18 ; Data
 00000052  0E00      LSR         R0,R0,#0x18
 00000054  2803      CMP         R0,#0x3
 00000056  D106      BNE         L_69  ; T=0x00000066
  526:         U0DLL = 0x61;
 00000058  2361      MOV         R3,#0x61
 0000005A  4800      LDR         R0,=0xE000C000
 0000005C  7003      STRB        R3,[R0,#0x0]
  527:         U0DLM = 0x00;
 0000005E  2300      MOV         R3,#0x0
 00000060  4800      LDR         R0,=0xE000C004
 00000062  7003      STRB        R3,[R0,#0x0]
  528:     }
 00000064  E016      B           L_66  ; T=0x00000094
 00000066          L_69:
  529:     else if ( Data == 0x06 ) {
 00000066  1C08      MOV         R0,R1 ; Data
 00000068  0600      LSL         R0,R0,#0x18 ; Data
 0000006A  0E00      LSR         R0,R0,#0x18
 0000006C  2806      CMP         R0,#0x6
 0000006E  D106      BNE         L_71  ; T=0x0000007E
  530:         U0DLL = 0xC3;
 00000070  23C3      MOV         R3,#0xC3
 00000072  4800      LDR         R0,=0xE000C000
 00000074  7003      STRB        R3,[R0,#0x0]
  531:         U0DLM = 0x00;
 00000076  2300      MOV         R3,#0x0
 00000078  4800      LDR         R0,=0xE000C004
 0000007A  7003      STRB        R3,[R0,#0x0]
  532:     }
 0000007C  E00A      B           L_66  ; T=0x00000094
 0000007E          L_71:
  533:     else if ( Data == 0x0C ) {
 0000007E  1C08      MOV         R0,R1 ; Data
 00000080  0600      LSL         R0,R0,#0x18 ; Data
 00000082  0E00      LSR         R0,R0,#0x18
 00000084  280C      CMP         R0,#0xC
 00000086  D105      BNE         L_66  ; T=0x00000094
  534:         U0DLL = 0x86;
 00000088  2386      MOV         R3,#0x86
 0000008A  4800      LDR         R0,=0xE000C000
 0000008C  7003      STRB        R3,[R0,#0x0]
  535:         U0DLM = 0x01;
 0000008E  2301      MOV         R3,#0x1
 00000090  4800      LDR         R0,=0xE000C004
 00000092  7003      STRB        R3,[R0,#0x0]
ARM COMPILER V2.50a,  VCOMuser                                                             14/02/06  09:59:08  PAGE 23  

  536:     }     
 00000094          L_66:
  537:     U0LCR &= ~0x80;
 00000094  247F      MOV         R4,#0x7F
 00000096  4800      LDR         R0,=0xE000C00C
 00000098  7803      LDRB        R3,[R0,#0x0]
 0000009A  4023      AND         R3,R4
 0000009C  7003      STRB        R3,[R0,#0x0]
  538:   }
 0000009E  E04C      B           L_74  ; T=0x0000013A
 000000A0          L_64:
  539:   else if ( channelNum == 1 ) {
 000000A0  1C10      MOV         R0,R2 ; channelNum
 000000A2  0600      LSL         R0,R0,#0x18 ; channelNum
 000000A4  0E00      LSR         R0,R0,#0x18
 000000A6  2801      CMP         R0,#0x1
 000000A8  D147      BNE         L_74  ; T=0x0000013A
  540:     U1FCR = 0x07;                  /* Enable and reset TX and RX FIFO. */
 000000AA  2207      MOV         R2,#0x7
 000000AC  4800      LDR         R0,=0xE0010008
 000000AE  7002      STRB        R2,[R0,#0x0]
  541:     U1LCR |= 0x80;
 000000B0  2380      MOV         R3,#0x80
 000000B2  4800      LDR         R0,=0xE001000C
 000000B4  7802      LDRB        R2,[R0,#0x0]
 000000B6  431A      ORR         R2,R3
 000000B8  7002      STRB        R2,[R0,#0x0]
  542:     if ( Data == 0x01 ) {
 000000BA  1C08      MOV         R0,R1 ; Data
 000000BC  0600      LSL         R0,R0,#0x18 ; Data
 000000BE  0E00      LSR         R0,R0,#0x18
 000000C0  2801      CMP         R0,#0x1
 000000C2  D106      BNE         L_76  ; T=0x000000D2
  543:         U1DLL = 0x20;
 000000C4  2220      MOV         R2,#0x20
 000000C6  4800      LDR         R0,=0xE0010000
 000000C8  7002      STRB        R2,[R0,#0x0]
  544:         U1DLM = 0x00;
 000000CA  2200      MOV         R2,#0x0
 000000CC  4800      LDR         R0,=0xE0010004
 000000CE  7002      STRB        R2,[R0,#0x0]
  545:     }
 000000D0  E02E      B           L_77  ; T=0x00000130
 000000D2          L_76:
  546:     else if ( Data == 0x02 ) {
 000000D2  1C08      MOV         R0,R1 ; Data
 000000D4  0600      LSL         R0,R0,#0x18 ; Data
 000000D6  0E00      LSR         R0,R0,#0x18
 000000D8  2802      CMP         R0,#0x2
 000000DA  D106      BNE         L_78  ; T=0x000000EA
  547:         U1DLL = 0x41;
 000000DC  2241      MOV         R2,#0x41
 000000DE  4800      LDR         R0,=0xE0010000
 000000E0  7002      STRB        R2,[R0,#0x0]
  548:         U1DLM = 0x00;
 000000E2  2200      MOV         R2,#0x0
 000000E4  4800      LDR         R0,=0xE0010004
 000000E6  7002      STRB        R2,[R0,#0x0]
  549:     }
 000000E8  E022      B           L_77  ; T=0x00000130
 000000EA          L_78:
  550:     else if ( Data == 0x03 ) {
 000000EA  1C08      MOV         R0,R1 ; Data
 000000EC  0600      LSL         R0,R0,#0x18 ; Data
 000000EE  0E00      LSR         R0,R0,#0x18
 000000F0  2803      CMP         R0,#0x3
ARM COMPILER V2.50a,  VCOMuser                                                             14/02/06  09:59:08  PAGE 24  

 000000F2  D106      BNE         L_80  ; T=0x00000102
  551:         U1DLL = 0x61;
 000000F4  2261      MOV         R2,#0x61
 000000F6  4800      LDR         R0,=0xE0010000
 000000F8  7002      STRB        R2,[R0,#0x0]
  552:         U1DLM = 0x00;
 000000FA  2200      MOV         R2,#0x0
 000000FC  4800      LDR         R0,=0xE0010004
 000000FE  7002      STRB        R2,[R0,#0x0]
  553:     }
 00000100  E016      B           L_77  ; T=0x00000130
 00000102          L_80:
  554:     else if ( Data == 0x06 ) {
 00000102  1C08      MOV         R0,R1 ; Data
 00000104  0600      LSL         R0,R0,#0x18 ; Data
 00000106  0E00      LSR         R0,R0,#0x18
 00000108  2806      CMP         R0,#0x6
 0000010A  D106      BNE         L_82  ; T=0x0000011A
  555:         U1DLL = 0xC3;
 0000010C  22C3      MOV         R2,#0xC3
 0000010E  4800      LDR         R0,=0xE0010000
 00000110  7002      STRB        R2,[R0,#0x0]
  556:         U1DLM = 0x00;
 00000112  2200      MOV         R2,#0x0
 00000114  4800      LDR         R0,=0xE0010004
 00000116  7002      STRB        R2,[R0,#0x0]
  557:     }
 00000118  E00A      B           L_77  ; T=0x00000130
 0000011A          L_82:
  558:     else if ( Data == 0x0C ) {
 0000011A  1C08      MOV         R0,R1 ; Data
 0000011C  0600      LSL         R0,R0,#0x18 ; Data
 0000011E  0E00      LSR         R0,R0,#0x18
 00000120  280C      CMP         R0,#0xC
 00000122  D105      BNE         L_77  ;

⌨️ 快捷键说明

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