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

📄 serial.lst

📁 ADuC7020/26是ADI模拟公司开发的ARM7TDMI内核
💻 LST
字号:
ARM COMPILER V2.42,  serial                                                                10/12/07  17:51:27  PAGE 1   


ARM COMPILER V2.42, COMPILATION OF MODULE serial
OBJECT MODULE PLACED IN serial.OBJ
COMPILER INVOKED BY: c:\Keil\ARM\BIN\CA.exe serial.c THUMB DEBUG TABS(4) 

stmt  level    source

    1          /***********************************************************************/
    2          /*                                                                     */
    3          /*  SERIAL.C:  Low Level Serial Routines                               */
    4          /*                                                                     */
    5          /***********************************************************************/
    6          
    7          #include <aduc7024.H>                      /* ADuC7024 definitions          */
    8          
    9          #define CR     0x0D
   10          
   11          int putchar(int ch)  {                   /* Write character to Serial Port  */
   12   1      
   13   1          if (ch == '\n')  {
   14   2              while(!(0x020==(COMSTA0 & 0x020)))
   15   2              {}
   16   2              COMTX = CR;                         /* output CR */
   17   2              }
   18   1          while(!(0x020==(COMSTA0 & 0x020)))
   19   1          {}
   20   1       
   21   1          return (COMTX = ch);
   22   1      }
   23          
   24          
   25          int getchar (void)  {                      /* Read character from Serial Port */
   26   1      
   27   1          while(!(0x01==(COMSTA0 & 0x01)))
   28   1          {}
   29   1          return (COMRX);
   30   1      }
   31          
   32          int write (int file, char * ptr, int len) {
   33   1        int i;
   34   1      
   35   1        for (i = 0; i < len; i++) putchar (*ptr++);
   36   1        return len;
   37   1      }
*** WARNING C47 IN LINE 32 OF SERIAL.C: 'file': unreferenced parameter
   38          
ARM COMPILER V2.42,  serial                                                                10/12/07  17:51:27  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** PUBLICS:
 PUBLIC         putchar?T
 PUBLIC         getchar?T
 PUBLIC         write?T



*** CODE SEGMENT '?PR?putchar?T?serial':
   11: int putchar(int ch)  {                   /* Write character to Serial Port  */
 00000000  1C01      MOV         R1,R0 ; ch
 00000002  ---- Variable 'ch' assigned to Register 'R1' ----
   13:     if (ch == '\n')  {
 00000002  1C08      MOV         R0,R1 ; ch
 00000004  280A      CMP         R0,#0xA ; ch
 00000006  D107      BNE         L_9  ; T=0x00000018
   15:         {}
 00000008          L_2:
 00000008  4800      LDR         R0,=0xFFFF0714
 0000000A  6800      LDR         R0,[R0,#0x0]
 0000000C  2220      MOV         R2,#0x20
 0000000E  4210      TST         R0,R2
 00000010  D0FA      BEQ         L_2  ; T=0x00000008
   16:         COMTX = CR;                         /* output CR */
 00000012  220D      MOV         R2,#0xD
 00000014  4800      LDR         R0,=0xFFFF0700
 00000016  6002      STR         R2,[R0,#0x0]
   18:     while(!(0x020==(COMSTA0 & 0x020)))
 00000018          L_9:
   19:     {}
 00000018          L_6:
 00000018  4800      LDR         R0,=0xFFFF0714
 0000001A  6800      LDR         R0,[R0,#0x0]
 0000001C  2220      MOV         R2,#0x20
 0000001E  4210      TST         R0,R2
 00000020  D0FA      BEQ         L_6  ; T=0x00000018
   21:      return (COMTX = ch);
 00000022  1C08      MOV         R0,R1 ; ch
 00000024  4800      LDR         R1,=0xFFFF0700
 00000026  6008      STR         R0,[R1,#0x0]
   22: }
 00000028  4770      BX          R14
 0000002A          ENDP ; 'putchar?T'


*** CODE SEGMENT '?PR?getchar?T?serial':
   28:        {}
 00000000          L_11:
 00000000  4800      LDR         R0,=0xFFFF0714
 00000002  6800      LDR         R0,[R0,#0x0]
 00000004  2101      MOV         R1,#0x1
 00000006  4008      AND         R0,R1
 00000008  2801      CMP         R0,#0x1
 0000000A  D1F9      BNE         L_11  ; T=0x00000000
   29:       return (COMRX);
 0000000C  4800      LDR         R0,=0xFFFF0700
 0000000E  6800      LDR         R0,[R0,#0x0]
   30: }
 00000010  4770      BX          R14
 00000012          ENDP ; 'getchar?T'


*** CODE SEGMENT '?PR?write?T?serial':
   32: int write (int file, char * ptr, int len) {
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C13      MOV         R3,R2 ; len
 00000004  ---- Variable 'len' assigned to Register 'R3' ----
 00000004  1C0D      MOV         R5,R1 ; ptr
 00000006  ---- Variable 'ptr' assigned to Register 'R5' ----
 00000006            ; SCOPE-START
ARM COMPILER V2.42,  serial                                                                10/12/07  17:51:27  PAGE 3   

   35:   for (i = 0; i < len; i++) putchar (*ptr++);
 00000006  2400      MOV         R4,#0x0
 00000008  ---- Variable 'i' assigned to Register 'R4' ----
 00000008  E005      B           L_18  ; T=0x00000016
 0000000A          L_19:
 0000000A  1C28      MOV         R0,R5 ; ptr
 0000000C  3501      ADD         R5,#0x1
 0000000E  7800      LDRB        R0,[R0,#0x0] ; ptr
 00000010  F7FF      BL          putchar?T  ; T=0x0001  (1)
 00000012  FFF6      BL          putchar?T  ; T=0x0001  (2)
 00000014  3401      ADD         R4,#0x1
 00000016          L_18:
 00000016  1C19      MOV         R1,R3 ; len
 00000018  1C20      MOV         R0,R4 ; i
 0000001A  4288      CMP         R0,R1 ; i
 0000001C  DBF5      BLT         L_19  ; T=0x0000000A
   36:   return len;
 0000001E  1C18      MOV         R0,R3 ; len
 00000020            ; SCOPE-END
   37: }
 00000020  BC30      POP         {R4-R5}
 00000022  BC08      POP         {R3}
 00000024  4718      BX          R3
 00000026          ENDP ; 'write?T'



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


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

⌨️ 快捷键说明

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