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

📄 lpclib.lst

📁 基于LP22132 KELL下的磁卡写卡器
💻 LST
📖 第 1 页 / 共 5 页
字号:
 0000002E  4A40      LDR         R2,=0x100
 00000030  1C11      MOV         R1,R2
 00000032  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
ARM COMPILER V2.54a,  lpclib                                                               04/09/07  10:03:16  PAGE 14  

 00000034  FFE5      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 00000036  1C08      MOV         R0,R1
 00000038  0601      LSL         R1,R0,#0x18
 0000003A  0E09      LSR         R1,R1,#0x18
 0000003C  4800      LDR         R0,=0xE000C004
 0000003E  7001      STRB        R1,[R0,#0x0]
   53:  U0DLL = Fdiv % 256;
 00000040  1C18      MOV         R0,R3 ; Fdiv
 00000042  0400      LSL         R0,R0,#0x10 ; Fdiv
 00000044  0C00      LSR         R0,R0,#0x10
 00000046  1C11      MOV         R1,R2
 00000048  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 0000004A  FFDA      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 0000004C  1C01      MOV         R1,R0
 0000004E  0609      LSL         R1,R1,#0x18
 00000050  0E09      LSR         R1,R1,#0x18
 00000052  4800      LDR         R0,=0xE000C000
 00000054  7001      STRB        R1,[R0,#0x0]
   54:  U0LCR = 0x03;
 00000056  2103      MOV         R1,#0x3
 00000058  4800      LDR         R0,=0xE000C00C
 0000005A  7001      STRB        R1,[R0,#0x0]
 0000005C            ; SCOPE-END
   55: }
 0000005C  BC08      POP         {R3}
 0000005E  4718      BX          R3
 00000060          ENDP ; 'UART0_Init?T'


*** CODE SEGMENT '?PR?UART1_Init?T?lpclib':
   61: void UART1_Init (uint32 baud)
 00000000  B500      PUSH        {LR}
 00000002  1C02      MOV         R2,R0 ; baud
 00000004  ---- Variable 'baud' assigned to Register 'R2' ----
   62: {
 00000004            ; SCOPE-START
   64:  PINSEL0 =(PINSEL0&(~(0x0f<<16)))|(0x05<<16);    //设置UART0连接,其他为普通IO 口
 00000004  4800      LDR         R0,=0xE002C000
 00000006  6801      LDR         R1,[R0,#0x0]
 00000008  4800      LDR         R0,=0xF0000
 0000000A  4381      BIC         R1,R0
 0000000C  4800      LDR         R0,=0x50000
 0000000E  4301      ORR         R1,R0
 00000010  4800      LDR         R0,=0xE002C000
 00000012  6001      STR         R1,[R0,#0x0]
   65:  U1LCR = 0x80;                                   // DLAB=1,允许设置波特率
 00000014  2180      MOV         R1,#0x80
 00000016  4800      LDR         R0,=0xE001000C
 00000018  7001      STRB        R1,[R0,#0x0]
   66:  Fdiv  = (Fpclk / 16) / baud;                    // 设置波特率
 0000001A  1C11      MOV         R1,R2 ; baud
 0000001C  4800      LDR         R0,=0xA8C00
 0000001E  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 00000020  FFEF      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
 00000022  1C08      MOV         R0,R1
 00000024  0403      LSL         R3,R0,#0x10
 00000026  0C1B      LSR         R3,R3,#0x10
 00000028  ---- Variable 'Fdiv' assigned to Register 'R3' ----
   67:  U1DLM = Fdiv / 256;
 00000028  1C18      MOV         R0,R3 ; Fdiv
 0000002A  0400      LSL         R0,R0,#0x10 ; Fdiv
 0000002C  0C00      LSR         R0,R0,#0x10
 0000002E  4A40      LDR         R2,=0x100
 00000030  1C11      MOV         R1,R2
 00000032  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 00000034  FFE5      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 00000036  1C08      MOV         R0,R1
 00000038  0601      LSL         R1,R0,#0x18
ARM COMPILER V2.54a,  lpclib                                                               04/09/07  10:03:16  PAGE 15  

 0000003A  0E09      LSR         R1,R1,#0x18
 0000003C  4800      LDR         R0,=0xE0010004
 0000003E  7001      STRB        R1,[R0,#0x0]
   68:  U1DLL = Fdiv % 256;
 00000040  1C18      MOV         R0,R3 ; Fdiv
 00000042  0400      LSL         R0,R0,#0x10 ; Fdiv
 00000044  0C00      LSR         R0,R0,#0x10
 00000046  1C11      MOV         R1,R2
 00000048  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 0000004A  FFDA      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 0000004C  1C01      MOV         R1,R0
 0000004E  0609      LSL         R1,R1,#0x18
 00000050  0E09      LSR         R1,R1,#0x18
 00000052  4800      LDR         R0,=0xE0010000
 00000054  7001      STRB        R1,[R0,#0x0]
   69:  U1LCR = 0x03;                                   //锁定设设置
 00000056  2103      MOV         R1,#0x3
 00000058  4800      LDR         R0,=0xE001000C
 0000005A  7001      STRB        R1,[R0,#0x0]
   70:  U1FCR = 0X01;                                   //使能FIFO并设置触发点为1字节
 0000005C  2101      MOV         R1,#0x1
 0000005E  4800      LDR         R0,=0xE0010008
 00000060  7001      STRB        R1,[R0,#0x0]
   71:  U1IER = 0X01;                                   //使能接收中断
 00000062  4800      LDR         R0,=0xE0010004
 00000064  7001      STRB        R1,[R0,#0x0]
 00000066            ; SCOPE-END
   72: }
 00000066  BC08      POP         {R3}
 00000068  4718      BX          R3
 0000006A          ENDP ; 'UART1_Init?T'


*** CODE SEGMENT '?PR?Uart_Getch?T?lpclib':
   79: {
 00000000            ; SCOPE-START
   82:  while ((U1LSR & 0x01) == 0);
 00000000          L_12:
 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_12  ; T=0x00000000
   83:  rcv_dat = U1RBR;
 0000000A  4800      LDR         R0,=0xE0010000
 0000000C  7801      LDRB        R1,[R0,#0x0]
 0000000E  ---- Variable 'rcv_dat' assigned to Register 'R1' ----
   85:  return (rcv_dat); 
 0000000E  1C08      MOV         R0,R1 ; rcv_dat
 00000010  0600      LSL         R0,R0,#0x18 ; rcv_dat
 00000012  0E00      LSR         R0,R0,#0x18
 00000014            ; SCOPE-END
   86: }
 00000014  4770      BX          R14
 00000016          ENDP ; 'Uart_Getch?T'


*** CODE SEGMENT '?PR?Uart_SendByte?T?lpclib':
   91: void Uart_SendByte (uint8 dat)
 00000000  1C02      MOV         R2,R0 ; dat
 00000002  ---- Variable 'dat' assigned to Register 'R2' ----
   93:  U1THR = dat;
 00000002  1C11      MOV         R1,R2 ; dat
 00000004  4800      LDR         R0,=0xE0010000
 00000006  7001      STRB        R1,[R0,#0x0]
   94:  while ((U1LSR & 0x20) == 0);  // 等待数据发送完毕
 00000008          L_17:
 00000008  4800      LDR         R0,=0xE0010014
 0000000A  7800      LDRB        R0,[R0,#0x0]
 0000000C  2120      MOV         R1,#0x20
ARM COMPILER V2.54a,  lpclib                                                               04/09/07  10:03:16  PAGE 16  

 0000000E  4208      TST         R0,R1
 00000010  D0FA      BEQ         L_17  ; T=0x00000008
   95: }
 00000012  4770      BX          R14
 00000014          ENDP ; 'Uart_SendByte?T'


*** CODE SEGMENT '?PR?Uart_SendString?T?lpclib':
  102: void Uart_SendString(char *pt)
 00000000  B500      PUSH        {LR}
 00000002  1C03      MOV         R3,R0 ; pt
 00000004  ---- Variable 'pt' assigned to Register 'R3' ----
  104:     while(*pt)
 00000004  E004      B           L_21  ; T=0x00000010
 00000006          L_23:
 00000006  1C18      MOV         R0,R3 ; pt
 00000008  3301      ADD         R3,#0x1
 0000000A  7800      LDRB        R0,[R0,#0x0] ; pt
 0000000C  F7FF      BL          Uart_SendByte?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          Uart_SendByte?T  ; T=0x0001  (2)
 00000010          L_21:
 00000010  1C18      MOV         R0,R3 ; pt
 00000012  7800      LDRB        R0,[R0,#0x0] ; pt
 00000014  2800      CMP         R0,#0x0
 00000016  D1F6      BNE         L_23  ; T=0x00000006
  106: }
 00000018  BC08      POP         {R3}
 0000001A  4718      BX          R3
 0000001C          ENDP ; 'Uart_SendString?T'


*** CODE SEGMENT '?PR?Uart_Printf?T?lpclib':
  112: void Uart_Printf(char *fmt,...)
 00000000  B40E      PUSH        {R1-R3}
 00000002  B510      PUSH        {R4,LR}
 00000004  1C02      MOV         R2,R0 ; fmt
 00000006  ---- Variable 'fmt' assigned to Register 'R2' ----
 00000006  B0C0      SUB         R13,#0x100
  113: {
 00000008            ; SCOPE-START
  117:     va_start(ap,fmt);
 00000008  AC40      ADD         R4,R13,#0x100
 0000000A  ---- Variable 'ap' assigned to Register 'R4' ----
  118:     vsprintf(string,fmt,ap);
 0000000A  A800      ADD         R0,R13,#0x0
 0000000C  1C11      MOV         R1,R2 ; fmt
 0000000E  1C22      MOV         R2,R4 ; ap
 00000010  F7FF      BL          vsprintf?T  ; T=0x0001  (1)
 00000012  FFF6      BL          vsprintf?T  ; T=0x0001  (2)
  119:     Uart_SendString(string);
 00000014  A800      ADD         R0,R13,#0x0
 00000016  F7FF      BL          Uart_SendString?T  ; T=0x0001  (1)
 00000018  FFF3      BL          Uart_SendString?T  ; T=0x0001  (2)
  120:     va_end(ap);
 0000001A  2400      MOV         R4,#0x0
 0000001C            ; SCOPE-END
  121: }
 0000001C  B040      ADD         R13,#0x100
 0000001E  BC10      POP         {R4}
 00000020  BC08      POP         {R3}
 00000022  B003      ADD         R13,#0xC
 00000024  4718      BX          R3
 00000026          ENDP ; 'Uart_Printf?T'


*** CODE SEGMENT '?PR?Uart_GetString?T?lpclib':
  127: void Uart_GetString(char *string)
 00000000  B570      PUSH        {R4-R6,LR}
 00000002  1C05      MOV         R5,R0 ; string
 00000004  ---- Variable 'string' assigned to Register 'R5' ----
 00000004  ---- Variable 'c' assigned to Register 'R4' ----
  128: {
ARM COMPILER V2.54a,  lpclib                                                               04/09/07  10:03:16  PAGE 17  

 00000004            ; SCOPE-START
  129:     char *string2=string;
 00000004  1C2E      MOV         R6,R5 ; string
 00000006  ---- Variable 'string2' assigned to Register 'R6' ----
  131:     while((c=Uart_Getch())!='\r')
 00000006  E016      B           L_25  ; T=0x00000036
 00000008          L_27:
  133:     if(c=='\b')
 00000008  1C20      MOV         R0,R4 ; c
 0000000A  0600      LSL         R0,R0,#0x18 ; c
 0000000C  0E00      LSR         R0,R0,#0x18
 0000000E  2808      CMP         R0,#0x8
 00000010  D108      BNE         L_29  ; T=0x00000024
  135:         if( (int)string2 < (int)string )
 00000012  1C29      MOV         R1,R5 ; string
 00000014  1C30      MOV         R0,R6 ; string2
 00000016  4288      CMP         R0,R1
 00000018  DA0D      BGE         L_25  ; T=0x00000036
  137:         Uart_Printf("\b \b");
 0000001A  4800      LDR         R0,=??S_1 ; ??S_1
 0000001C  F7FF      BL          Uart_Printf?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          Uart_Printf?T  ; T=0x0001  (2)
  138:         string--;
 00000020  3D01      SUB         R5,#0x1
  140:     }
 00000022  E008      B           L_25  ; T=0x00000036
 00000024          L_29:
  143:         *string++=c;
 00000024  1C21      MOV         R1,R4 ; c
 00000026  1C28      MOV         R0,R5 ; string
 00000028  3501      ADD         R5,#0x1
 0000002A  7001      STRB        R1,[R0,#0x0] ; string
  144:         Uart_SendByte(c);
 0000002C  1C20      MOV         R0,R4 ; c
 0000002E  0600      LSL         R0,R0,#0x18 ; c
 00000030  0E00      LSR         R0,R0,#0x18
 00000032  F7FF      BL          Uart_SendByte?T  ; T=0x0001  (1)
 00000034  FFE5      BL          Uart_SendByte?T  ; T=0x0001  (2)
  146:     }
 00000036          L_25:
 00000036  F7FF      BL          Uart_Getch?T  ; T=0x0001  (1)
 00000038  FFE3      BL          Uart_Getch?T  ; T=0x0001  (2)
 0000003A  1C04      MOV         R4,R0 ; c
 0000003C  0600      LSL         R0,R0,#0x18 ; Uart_Getch?T
 0000003E  0E00      LSR         R0,R0,#0x18
 00000040  280D      CMP         R0,#0xD
 00000042  D1E1      BNE         L_27  ; T=0x00000008
  147:     *string='\0';
 00000044  2100      MOV         R1,#0x0
 00000046  1C28      MOV         R0,R5 ; string
 00000048  7001      STRB        R1,[R0,#0x0] ; string
  148:     Uart_SendByte('\n');
 0000004A  200A      MOV         R0,#0xA
 0000004C  F7FF      BL          Uart_SendByte?T  ; T=0x0001  (1)
 0000004E  FFD8      BL          Uart_SendByte?T  ; T=0x0001  (2)
 00000050            ; SCOPE-END
  149: }
 00000050  BC70      POP         {R4-R6}
 00000052  BC08      POP         {R3}
 00000054  4718      BX          R3
 00000056          ENDP ; 'Uart_GetString?T'


*** CODE SEGMENT '?PR?Port_Init?T?lpclib':
  171:  PINSEL1=0x000003c1;            //IO状态控制1
 00000000  4800      LDR         R1,=0x3C1
 00000002  4800      LDR         R0,=0xE002C004
 00000004  6001      STR         R1,[R0,#0x0]
ARM COMPILER V2.54a,  lpclib                                                               04/09/07  10:03:16  PAGE 18  

  172:  PINSEL0=0xb0c500c5;            //IO状态控制0
 00000006  4800      LDR         R1,=0xB0C500C5

⌨️ 快捷键说明

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