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

📄 serial.lst

📁 lpc2138读写SD卡的fat文件系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
 00000044  E3A020FB  MOV         R2,#0xFB
 00000048  E5100000  LDR         R0,=0xE001001C
 0000004C  E5D01000  LDRB        R1,[R0,#0x0]
 00000050  E0011002  AND         R1,R1,R2
 00000054  E5C01000  STRB        R1,[R0,#0x0]
   51:        rx_char = U1RBR;     // get char and clears the interrupt
 00000058  E5100000  LDR         R0,=0xE0010000
 0000005C  E5D04000  LDRB        R4,[R0,#0x0]
 00000060  ---- Variable 'rx_char' assigned to Register 'R4' ----
   52:        wr_hex(rx_char);
 00000060  E1A00C04  MOV         R0,R4,LSL #24 ; rx_char
 00000064  E1A00C20  MOV         R0,R0,LSR #24 ; rx_char
 00000068  EBFFFFE4  BL          wr_hex?A  ; Targ=0x0
   54:        if (rx_char == CR) {
 0000006C  E1A00C04  MOV         R0,R4,LSL #24 ; rx_char
 00000070  E1A00C20  MOV         R0,R0,LSR #24 ; rx_char
 00000074  E350000D  CMP         R0,#0x000D ; rx_char
 00000078  1A000008  BNE         L_1  ; Targ=0xA0
   55:          U1SCR |= 0x04;     // enable kp_printf(...)
 0000007C  E5100000  LDR         R0,=0xE001001C
 00000080  E5D01000  LDRB        R1,[R0,#0x0]
ARM COMPILER V2.00d,  Serial                                                               23/10/05  18:16:17  PAGE 4   

 00000084  E3811004  ORR         R1,R1,#0x0004
 00000088  E5C01000  STRB        R1,[R0,#0x0]
   56:          U1THR = rx_char;       // echo character
 0000008C  E5100000  LDR         R0,=0xE0010000
 00000090  E5C04000  STRB        R4,[R0,#0x0] ; rx_char
   58:        break;
 00000094  EA000001  B           L_1  ; Targ=0xA0
   69:     case 0x00:              // CTS or DSR
 00000098          L_2:
   71:        temp = U1MSR;        // clear interrupt
 00000098  E5100000  LDR         R0,=0xE0010018
 0000009C  E5D00000  LDRB        R0,[R0,#0x0]
   74:   } 
 000000A0          L_1:
   76:   if ((U1SCR & 0x01) == 0x01) {
 000000A0  E5100000  LDR         R0,=0xE001001C
 000000A4  E5D00000  LDRB        R0,[R0,#0x0]
 000000A8  E3A01001  MOV         R1,#0x1
 000000AC  E0000001  AND         R0,R0,R1
 000000B0  E3500001  CMP         R0,#0x0001
 000000B4  1A000008  BNE         L_8  ; Targ=0xDC
   77:     set_LED(3,1);
 000000B8  E3A00003  MOV         R0,#0x3
 000000BC  E3A01001  MOV         R1,#0x1
 000000C0  EBFFFFCE  BL          set_LED?A  ; Targ=0x0
   78:     U1SCR &= 0xFE; }
 000000C4  E3A020FE  MOV         R2,#0xFE
 000000C8  E5100000  LDR         R0,=0xE001001C
 000000CC  E5D01000  LDRB        R1,[R0,#0x0]
 000000D0  E0011002  AND         R1,R1,R2
 000000D4  E5C01000  STRB        R1,[R0,#0x0]
 000000D8  EA000006  B           L_9  ; Targ=0xF8
 000000DC          L_8:
   80:     set_LED(3,0);
 000000DC  E3A00003  MOV         R0,#0x3
 000000E0  E3A01000  MOV         R1,#0x0
 000000E4  EBFFFFC5  BL          set_LED?A  ; Targ=0x0
   81:     U1SCR |= 0x01; }
 000000E8  E5100000  LDR         R0,=0xE001001C
 000000EC  E5D01000  LDRB        R1,[R0,#0x0]
 000000F0  E3811001  ORR         R1,R1,#0x0001
 000000F4  E5C01000  STRB        R1,[R0,#0x0]
 000000F8          L_9:
   82:   VICVectAddr = 0;          // Acknowledge Interrupt
 000000F8  E3A01000  MOV         R1,#0x0
 000000FC  E5100000  LDR         R0,=0xFFFFF030
 00000100  E5801000  STR         R1,[R0,#0x0]
 00000104            ; SCOPE-END
   83: }
 00000104  E8BD5F1F  LDMIA       R13!,{R0-R4,R8-R12,LR}
 00000108  E25EF004  SUBS        R15,R14,#0x0004
 0000010C          ENDP ; 'uart1?A'


*** CODE SEGMENT '?PR?init_serial?T?Serial':
   87:   U1LCR = 0x83;                         /* 8 bits, no Parity, 1 Stop bit     */
 00000000  2183      MOV         R1,#0x83
 00000002  4800      LDR         R0,=0xE001000C
 00000004  7001      STRB        R1,[R0,#0x0]
   88:   U1DLL = 97;                           /* use 24 for 38400 Baud Rate @ 15MHz VPB Clock (was 97 or 9600 BOAD) */
 00000006  2161      MOV         R1,#0x61
 00000008  4800      LDR         R0,=0xE0010000
 0000000A  7001      STRB        R1,[R0,#0x0]
   89:   U1LCR = 0x03;                         /* DLAB = 0 */
 0000000C  2103      MOV         R1,#0x3
 0000000E  4800      LDR         R0,=0xE001000C
 00000010  7001      STRB        R1,[R0,#0x0]
   90:   U1IER = 0x01;                         // Enable reciever data available interrupt
ARM COMPILER V2.00d,  Serial                                                               23/10/05  18:16:17  PAGE 5   

 00000012  2101      MOV         R1,#0x1
 00000014  4800      LDR         R0,=0xE0010004
 00000016  7001      STRB        R1,[R0,#0x0]
   91:   U1SCR = 0x05;                         // set two flag in UART 1 scratch pad
 00000018  2105      MOV         R1,#0x5
 0000001A  4800      LDR         R0,=0xE001001C
 0000001C  7001      STRB        R1,[R0,#0x0]
   94:   VICVectAddr4 = (unsigned long)uart1;  // set interrupt vector in 4
 0000001E  4900      LDR         R1,=uart1?A ; uart1?A
 00000020  4800      LDR         R0,=0xFFFFF110
 00000022  6001      STR         R1,[R0,#0x0]
   95:   VICVectCntl4 = 0x20 | 7;              // use it for UART 1 clock
 00000024  2127      MOV         R1,#0x27
 00000026  4800      LDR         R0,=0xFFFFF210
 00000028  6001      STR         R1,[R0,#0x0]
   96: }
 0000002A  4770      BX          R14
 0000002C          ENDP ; 'init_serial?T'


*** CODE SEGMENT '?PR?putchar?T?Serial':
   99: int putchar (int ch)  {                  // Write character to Serial Port    
 00000000  ---- Variable 'ch' assigned to Register 'R0' ----
  101:   if (ch == '\n')  {
 00000000  280A      CMP         R0,#0xA ; ch
 00000002  D107      BNE         L_18  ; T=0x00000014
  102:     while (!(U1LSR & 0x20));
 00000004          L_11:
 00000004  4800      LDR         R1,=0xE0010014
 00000006  7809      LDRB        R1,[R1,#0x0]
 00000008  2220      MOV         R2,#0x20
 0000000A  4211      TST         R1,R2
 0000000C  D0FA      BEQ         L_11  ; T=0x00000004
  103:     U1THR = CR;                          // output CR 
 0000000E  220D      MOV         R2,#0xD
 00000010  4800      LDR         R1,=0xE0010000
 00000012  700A      STRB        R2,[R1,#0x0]
  105:   while (!(U1LSR & 0x20));
 00000014          L_18:
 00000014          L_15:
 00000014  4800      LDR         R1,=0xE0010014
 00000016  7809      LDRB        R1,[R1,#0x0]
 00000018  2220      MOV         R2,#0x20
 0000001A  4211      TST         R1,R2
 0000001C  D0FA      BEQ         L_15  ; T=0x00000014
  106:   return (U1THR = ch);
 0000001E  4800      LDR         R1,=0xE0010000
 00000020  7008      STRB        R0,[R1,#0x0]
 00000022  0600      LSL         R0,R0,#0x18 ; ch
 00000024  0E00      LSR         R0,R0,#0x18
  107: }
 00000026  4770      BX          R14
 00000028          ENDP ; 'putchar?T'


*** CODE SEGMENT '?PR?getchar?T?Serial':
  110:   while (!(U1LSR & 0x01));
 00000000          L_20:
 00000000  4800      LDR         R0,=0xE0010014
 00000002  7800      LDRB        R0,[R0,#0x0]
 00000004  2101      MOV         R1,#0x1
 00000006  4208      TST         R0,R1
 00000008  D0FA      BEQ         L_20  ; T=0x00000000
  111:   return (U1RBR);
 0000000A  4800      LDR         R0,=0xE0010000
 0000000C  7800      LDRB        R0,[R0,#0x0]
  112: }
 0000000E  4770      BX          R14
 00000010          ENDP ; 'getchar?T'


ARM COMPILER V2.00d,  Serial                                                               23/10/05  18:16:17  PAGE 6   


Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
  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 + -