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

📄 uart4.lst

📁 ADuC7020/26是ADI模拟公司开发的ARM7TDMI内核
💻 LST
字号:
ARM COMPILER V2.32c,  UART4                                                                14/09/05  13:27:44  PAGE 1   


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

stmt  level    source

    1          /*********************************************************************
    2          
    3           Author        : ADI - Apps            www.analog.com/MicroConverter
    4          
    5           Date          : Sept. 2005
    6          
    7           File          : UART2.c
    8          
    9           Hardware      : Applicable to ADuC702x rev H or I silicon
   10                           Currently targetting ADuC7026.
   11          
   12           Description   : This code demonstrates the use of the fractional divider.
   13                           The baudrate generated is 115200bps, with a CD of 3.
   14                           
   15                           Without using a fractional divider, the baudrate generated
   16                           would be 88062bps or an error of 24%
   17           
   18                           with the fractional divider, we can acheive an error of
   19                           3.54 E-3%                                         
   20                                                                                                                                                                     
   21          ***********************************************************************/
   22          
   23          #include <ADuC7026.h>
   24              
   25          extern int write (int file, char * ptr, int len);   // Functions used to 
   26          extern int getchar (void);                          // to output data    
   27          extern int putchar(int);                            // Write character to Serial Port  
   28          
   29          
   30          int main (void)  {
   31   1        unsigned char jchar = 0x30;
   32   1      
   33   1          char output1[13] = "Hello World\n";
   34   1          
   35   1          // Setup tx & rx pins on P1.0 and P1.1
   36   1          GP1CON = 0x011;
   37   1       
   38   1           // CD = 3 !         
   39   1          COMCON0 = 0x80;                 // Setting DLAB
   40   1          COMDIV0 = 0x01;                 // Setting DIV0 and DIV1 to DL calculated
   41   1          COMDIV1 = 0x00;
   42   1          COMCON0 = 0x07;                 // Clearing DLAB
   43   1          COMDIV2 = 0x8B55;               // fractional divider
   44   1      
   45   1          GP4DAT = 0x04000000;            // P4.2 configured as an output. LED is turned on
   46   1      
   47   1          while(1)
   48   1          {
   49   2      
   50   2              GP4DAT ^= 0x00040000;       // Complement P4.2
   51   2              write(0,output1,13);        // Output Data
   52   2              jchar = getchar();          // RX Data, Single Byte
   53   2              write(0,&jchar,1);          // Output Rxed Data
   54   2          }
   55   1      }
ARM COMPILER V2.32c,  UART4                                                                14/09/05  13:27:44  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (write?T)
 EXTERN CODE16 (getchar?T)
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         main



*** DATA SEGMENT '?CON?UART4':
 00000000          ?tpl?0001:
 00000000           BEGIN_INIT
 00000000            DB          'Hello World',0x0A,0x00
 0000000D           END_INIT



*** CODE SEGMENT '?PR?main?UART4':
   30: int main (void)  {
 00000000  B500      PUSH        {LR}
 00000002  B085      SUB         R13,#0x14
 00000004            ; SCOPE-START
   31:   unsigned char jchar = 0x30;
 00000004  2030      MOV         R0,#0x30
 00000006  9000      STR         R0,[R13,#0x0] ; jchar
   33:     char output1[13] = "Hello World\n";
 00000008  4800      LDR         R1,=?tpl?0001 ; ?tpl?0001
 0000000A  A801      ADD         R0,R13,#0x4
 0000000C  220D      MOV         R2,#0xD
 0000000E          L_6:
 0000000E  780B      LDRB        R3,[R1,#0x0]
 00000010  7003      STRB        R3,[R0,#0x0]
 00000012  1C49      ADD         R1,R1,#0x1
 00000014  1C40      ADD         R0,R0,#0x1
 00000016  1E52      SUB         R2,R2,#0x1
 00000018  D1F9      BNE         L_6  ; T=0x0000000E
   36:     GP1CON = 0x011;
 0000001A  2111      MOV         R1,#0x11
 0000001C  4800      LDR         R0,=0xFFFFF404
 0000001E  6001      STR         R1,[R0,#0x0]
   39:     COMCON0 = 0x80;                 // Setting DLAB
 00000020  2180      MOV         R1,#0x80
 00000022  4800      LDR         R0,=0xFFFF070C
 00000024  6001      STR         R1,[R0,#0x0]
   40:        COMDIV0 = 0x01;                  // Setting DIV0 and DIV1 to DL calculated
 00000026  2101      MOV         R1,#0x1
 00000028  4800      LDR         R0,=0xFFFF0700
 0000002A  6001      STR         R1,[R0,#0x0]
   41:     COMDIV1 = 0x00;
 0000002C  2100      MOV         R1,#0x0
 0000002E  4800      LDR         R0,=0xFFFF0704
 00000030  6001      STR         R1,[R0,#0x0]
   42:        COMCON0 = 0x07;                  // Clearing DLAB
 00000032  2107      MOV         R1,#0x7
 00000034  4800      LDR         R0,=0xFFFF070C
 00000036  6001      STR         R1,[R0,#0x0]
   43:     COMDIV2 = 0x8B55;               // fractional divider
 00000038  4800      LDR         R1,=0x8B55
 0000003A  4800      LDR         R0,=0xFFFF072C
 0000003C  6001      STR         R1,[R0,#0x0]
   45:     GP4DAT = 0x04000000;            // P4.2 configured as an output. LED is turned on
 0000003E  4800      LDR         R1,=0x4000000
 00000040  4800      LDR         R0,=0xFFFFF460
 00000042  6001      STR         R1,[R0,#0x0]
   47:     while(1)
 00000044          L_3:
ARM COMPILER V2.32c,  UART4                                                                14/09/05  13:27:44  PAGE 3   

   50:         GP4DAT ^= 0x00040000;       // Complement P4.2
 00000044  4800      LDR         R2,=0x40000
 00000046  4800      LDR         R0,=0xFFFFF460
 00000048  6801      LDR         R1,[R0,#0x0]
 0000004A  4051      EOR         R1,R2
 0000004C  6001      STR         R1,[R0,#0x0]
   51:         write(0,output1,13);        // Output Data
 0000004E  A901      ADD         R1,R13,#0x4
 00000050  2000      MOV         R0,#0x0
 00000052  220D      MOV         R2,#0xD
 00000054  F7FF      BL          write?T  ; T=0x0001  (1)
 00000056  FFD4      BL          write?T  ; T=0x0001  (2)
   52:         jchar = getchar();          // RX Data, Single Byte
 00000058  F7FF      BL          getchar?T  ; T=0x0001  (1)
 0000005A  FFD2      BL          getchar?T  ; T=0x0001  (2)
 0000005C  9000      STR         R0,[R13,#0x0] ; jchar
   53:         write(0,&jchar,1);          // Output Rxed Data
 0000005E  A900      ADD         R1,R13,#0x0
 00000060  2000      MOV         R0,#0x0
 00000062  2201      MOV         R2,#0x1
 00000064  F7FF      BL          write?T  ; T=0x0001  (1)
 00000066  FFCC      BL          write?T  ; T=0x0001  (2)
   54:     }
 00000068  E7EC      B           L_3  ; T=0x00000044
 0000006A            ; SCOPE-END
   55: }
 0000006A  B005      ADD         R13,#0x14
 0000006C  BC08      POP         {R3}
 0000006E  4718      BX          R3
 00000070          ENDP ; 'main'



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


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

⌨️ 快捷键说明

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