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

📄 usart.lst

📁 atmelsam7s64twi完美底层驱动
💻 LST
📖 第 1 页 / 共 3 页
字号:
 0000001C          L_11:
 0000001C          L_8:
 0000001C  4800      LDR         R0,=0xFFFC0014
 0000001E  6800      LDR         R0,[R0,#0x0]
 00000020  2202      MOV         R2,#0x2
 00000022  4210      TST         R0,R2
 00000024  D0FA      BEQ         L_8  ; T=0x0000001C
  100:     return (*AT91C_US0_THR = ch);                 // Transmit Character
 00000026  1C08      MOV         R0,R1 ; ch
 00000028  0600      LSL         R0,R0,#0x18 ; ch
 0000002A  0E00      LSR         R0,R0,#0x18
 0000002C  4800      LDR         R1,=0xFFFC001C
 0000002E  6008      STR         R0,[R1,#0x0]
  101: }
 00000030  4770      BX          R14
 00000032          ENDP ; 'putcharme?T'


*** CODE SEGMENT '?PR?helloworld?T?usart':
  104: void helloworld(void)
 00000000  B500      PUSH        {LR}
 00000002  B084      SUB         R13,#0x10
  105: {
 00000004            ; SCOPE-START
  106:     unsigned char hello[]={'h','e','l','l','o',' ','w','o','r','l','d','!','\n',};
 00000004  4800      LDR         R1,=?tpl?0001 ; ?tpl?0001
 00000006  A800      ADD         R0,R13,#0x0
 00000008  220D      MOV         R2,#0xD
 0000000A          L_39:
 0000000A  780B      LDRB        R3,[R1,#0x0]
 0000000C  7003      STRB        R3,[R0,#0x0]
 0000000E  1C49      ADD         R1,R1,#0x1
 00000010  1C40      ADD         R0,R0,#0x1
 00000012  1E52      SUB         R2,R2,#0x1
 00000014  D1F9      BNE         L_39  ; T=0x0000000A
  108:     for(i=0;i<13;i++)
 00000016  2300      MOV         R3,#0x0
 00000018  ---- Variable 'i' assigned to Register 'R3' ----
 00000018  E009      B           L_15  ; T=0x0000002E
 0000001A          L_16:
  110:         putcharme(hello[i]);
 0000001A  1C18      MOV         R0,R3 ; i
 0000001C  0601      LSL         R1,R0,#0x18 ; i
 0000001E  0E09      LSR         R1,R1,#0x18
 00000020  A800      ADD         R0,R13,#0x0
 00000022  5C40      LDRB        R0,[R0,R1]
 00000024  F7FF      BL          putcharme?T  ; T=0x0001  (1)
 00000026  FFEC      BL          putcharme?T  ; T=0x0001  (2)
  111:     }
 00000028  3301      ADD         R3,#0x1
 0000002A  061B      LSL         R3,R3,#0x18
 0000002C  0E1B      LSR         R3,R3,#0x18
 0000002E          L_15:
 0000002E  1C18      MOV         R0,R3 ; i
ARM COMPILER V2.53,  usart                                                                 19/07/06  08:38:09  PAGE 9   

 00000030  0600      LSL         R0,R0,#0x18 ; i
 00000032  0E00      LSR         R0,R0,#0x18
 00000034  280D      CMP         R0,#0xD
 00000036  DBF0      BLT         L_16  ; T=0x0000001A
 00000038            ; SCOPE-END
  112: }
 00000038  B004      ADD         R13,#0x10
 0000003A  BC08      POP         {R3}
 0000003C  4718      BX          R3
 0000003E          ENDP ; 'helloworld?T'


*** CODE SEGMENT '?PR?USART0_send_string?T?usart':
  114: void USART0_send_string(unsigned char *bpSendData,unsigned int length)
 00000000  B510      PUSH        {R4,LR}
 00000002  1C0C      MOV         R4,R1 ; length
 00000004  ---- Variable 'length' assigned to Register 'R4' ----
 00000004  1C03      MOV         R3,R0 ; bpSendData
 00000006  ---- Variable 'bpSendData' assigned to Register 'R3' ----
  116:     while(length--)
 00000006  E004      B           L_18  ; T=0x00000012
 00000008          L_20:
  118:         putcharme(*(bpSendData++));
 00000008  1C18      MOV         R0,R3 ; bpSendData
 0000000A  3301      ADD         R3,#0x1
 0000000C  7800      LDRB        R0,[R0,#0x0] ; bpSendData
 0000000E  F7FF      BL          putcharme?T  ; T=0x0001  (1)
 00000010  FFF7      BL          putcharme?T  ; T=0x0001  (2)
  119:     }
 00000012          L_18:
 00000012  1C20      MOV         R0,R4 ; length
 00000014  3C01      SUB         R4,#0x1
 00000016  2800      CMP         R0,#0x0 ; length
 00000018  D1F6      BNE         L_20  ; T=0x00000008
  120:     putcharme(0x0a);
 0000001A  200A      MOV         R0,#0xA
 0000001C  F7FF      BL          putcharme?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          putcharme?T  ; T=0x0001  (2)
  121: }
 00000020  BC10      POP         {R4}
 00000022  BC08      POP         {R3}
 00000024  4718      BX          R3
 00000026          ENDP ; 'USART0_send_string?T'


*** CODE SEGMENT '?PR?Receivechar?T?usart':
  124:     if ((*AT91C_US0_CSR) & AT91C_US_RXRDY)
 00000000  4800      LDR         R0,=0xFFFC0014
 00000002  6800      LDR         R0,[R0,#0x0]
 00000004  2101      MOV         R1,#0x1
 00000006  4208      TST         R0,R1
 00000008  D00B      BEQ         L_22  ; T=0x00000022
  126:         bpRBuff[g_bRBuffpiont] = *AT91C_US0_RHR;
 0000000A  4800      LDR         R0,=0xFFFC0018
 0000000C  6800      LDR         R0,[R0,#0x0]
 0000000E  0600      LSL         R0,R0,#0x18
 00000010  0E00      LSR         R0,R0,#0x18
 00000012  4800      LDR         R1,=g_bRBuffpiont ; g_bRBuffpiont
 00000014  7809      LDRB        R1,[R1,#0x0] ; g_bRBuffpiont
 00000016  1C0B      MOV         R3,R1
 00000018  4800      LDR         R2,=bpRBuff ; bpRBuff
 0000001A  54D0      STRB        R0,[R2,R3]
  127:         g_bRBuffpiont++;
 0000001C  4800      LDR         R0,=g_bRBuffpiont ; g_bRBuffpiont
 0000001E  3101      ADD         R1,#0x1
 00000020  7001      STRB        R1,[R0,#0x0] ; g_bRBuffpiont
  128:     }
 00000022          L_22:
  129: }
 00000022  4770      BX          R14
ARM COMPILER V2.53,  usart                                                                 19/07/06  08:38:09  PAGE 10  

 00000024          ENDP ; 'Receivechar?T'


*** CODE SEGMENT '?PR?Usart1_putchar?T?usart':
  130: unsigned char Usart1_putchar (unsigned char ch)
 00000000  1C01      MOV         R1,R0 ; ch
 00000002  ---- Variable 'ch' assigned to Register 'R1' ----
  132:     if (ch == '\n')  
 00000002  1C08      MOV         R0,R1 ; ch
 00000004  0600      LSL         R0,R0,#0x18 ; ch
 00000006  0E00      LSR         R0,R0,#0x18
 00000008  280A      CMP         R0,#0xA
 0000000A  D107      BNE         L_31  ; T=0x0000001C
  134:         while (!((*AT91C_US1_CSR) & AT91C_US_TXRDY)); // Wait for Empty Tx Buffer
 0000000C          L_24:
 0000000C  4800      LDR         R0,=0xFFFC4014
 0000000E  6800      LDR         R0,[R0,#0x0]
 00000010  2202      MOV         R2,#0x2
 00000012  4210      TST         R0,R2
 00000014  D0FA      BEQ         L_24  ; T=0x0000000C
  135:         *AT91C_US1_THR = '\r';                      // Output CR
 00000016  220D      MOV         R2,#0xD
 00000018  4800      LDR         R0,=0xFFFC401C
 0000001A  6002      STR         R2,[R0,#0x0]
  137:     while (!((*AT91C_US1_CSR) & AT91C_US_TXRDY));   // Wait for Empty Tx Buffer
 0000001C          L_31:
 0000001C          L_28:
 0000001C  4800      LDR         R0,=0xFFFC4014
 0000001E  6800      LDR         R0,[R0,#0x0]
 00000020  2202      MOV         R2,#0x2
 00000022  4210      TST         R0,R2
 00000024  D0FA      BEQ         L_28  ; T=0x0000001C
  138:     return (*AT91C_US1_THR = ch);                 // Transmit Character
 00000026  1C08      MOV         R0,R1 ; ch
 00000028  0600      LSL         R0,R0,#0x18 ; ch
 0000002A  0E00      LSR         R0,R0,#0x18
 0000002C  4800      LDR         R1,=0xFFFC401C
 0000002E  6008      STR         R0,[R1,#0x0]
  139: }
 00000030  4770      BX          R14
 00000032          ENDP ; 'Usart1_putchar?T'


*** CODE SEGMENT '?PR?hello_laogao?T?usart':
  141: void hello_laogao(void)
 00000000  B500      PUSH        {LR}
 00000002  B084      SUB         R13,#0x10
  142: {
 00000004            ; SCOPE-START
  143:     unsigned char hello1[]={'h','e','l','l','o',' ','L','a','o','g','a','o','\n',};
 00000004  4800      LDR         R1,=?tpl?0002 ; ?tpl?0002
 00000006  A800      ADD         R0,R13,#0x0
 00000008  220D      MOV         R2,#0xD
 0000000A          L_41:
 0000000A  780B      LDRB        R3,[R1,#0x0]
 0000000C  7003      STRB        R3,[R0,#0x0]
 0000000E  1C49      ADD         R1,R1,#0x1
 00000010  1C40      ADD         R0,R0,#0x1
 00000012  1E52      SUB         R2,R2,#0x1
 00000014  D1F9      BNE         L_41  ; T=0x0000000A
  146:     for(i=0;i<13;i++)
 00000016  2300      MOV         R3,#0x0
 00000018  ---- Variable 'i' assigned to Register 'R3' ----
 00000018  E009      B           L_35  ; T=0x0000002E
 0000001A          L_36:
  148:         Usart1_putchar(hello1[i]);
 0000001A  1C18      MOV         R0,R3 ; i
 0000001C  0601      LSL         R1,R0,#0x18 ; i
 0000001E  0E09      LSR         R1,R1,#0x18
 00000020  A800      ADD         R0,R13,#0x0
ARM COMPILER V2.53,  usart                                                                 19/07/06  08:38:09  PAGE 11  

 00000022  5C40      LDRB        R0,[R0,R1]
 00000024  F7FF      BL          Usart1_putchar?T  ; T=0x0001  (1)
 00000026  FFEC      BL          Usart1_putchar?T  ; T=0x0001  (2)
  149:     }
 00000028  3301      ADD         R3,#0x1
 0000002A  061B      LSL         R3,R3,#0x18
 0000002C  0E1B      LSR         R3,R3,#0x18
 0000002E          L_35:
 0000002E  1C18      MOV         R0,R3 ; i
 00000030  0600      LSL         R0,R0,#0x18 ; i
 00000032  0E00      LSR         R0,R0,#0x18
 00000034  280D      CMP         R0,#0xD
 00000036  DBF0      BLT         L_36  ; T=0x0000001A
 00000038            ; SCOPE-END
 00000038  B004      ADD         R13,#0x10
 0000003A  BC08      POP         {R3}
 0000003C  4718      BX          R3
 0000003E          ENDP ; 'hello_laogao?T'



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


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

⌨️ 快捷键说明

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