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

📄 main.lst

📁 掏美元培训得来的某外国公司推广keil ARM 和LPC2100的源码。
💻 LST
字号:
ARM COMPILER V2.00f,  main                                                                 20/02/05  12:51:49  PAGE 1   


ARM COMPILER V2.00f, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe main.c THUMB OPTIMIZE(7,SPEED) BROWSE DEBUG TABS(4) 

stmt  level    source

    1          /************************************************************/
    2          /* PROJECT NAME: AtoD                                       */
    3          /* Project:      LPC2100 Training course                    */
    4          /* Engineer:     T Martin   tmartin@hitex.co.uk             */
    5          /* Filename:     main.c                                     */
    6          /* Language:     C                                          */
    7          /* Compiler:     Keil ARM   V1.3                            */
    8          /* Assembler:                                               */
    9          /*                                                          */
   10          /************************************************************/
   11          /* COPYRIGHT: Hitex UK Ltd      2004                        */
   12          /* LICENSE:   THIS VERSION CREATED FOR FREE DISTRIBUTION    */
   13          /************************************************************/
   14          /* Function:                                                */
   15          /*                                                          */
   16          /* Example Analogue convertor program for LPC2100           */
   17          /*                                                          */
   18          /* Demonstrates A/Dconversion in hardware mode with         */
   19          /*                                                          */  
   20          /* Oscillator frequency 12.000 Mhz                          */
   21          /* Target board Keil MCB2100                                */
   22          /************************************************************/
   23          
   24          #include <lpc21xx.h>
   25          
   26          unsigned val = 0;
   27          
   28          int main(void)
   29          {
   30   1      
   31   1      VPBDIV = 0x02;          //Set the Pclk to 30 Mhz
   32   1      IODIR1 = 0x00FF0000;    // P1.16..23 defined as Outputs  
   33   1      ADCR   = 0x00270601;    // Setup A/D: 10-bit AIN0 @ 3MHz 
   34   1      ADCR  |= 0x01000000;    // Start A/D Conversion 
   35   1      
   36   1      while(1)
   37   1      {
   38   2                
   39   2      do
   40   2      {
   41   3          val = ADDR;                   // Read A/D Data Register 
   42   3      }        
   43   2      while ((val & 0x80000000) == 0);  //Wait for the conversion to complete
   44   2      val = ((val >> 6) & 0x03FF)<<16;  //Extract the A/D result 
   45   2      
   46   2      IOCLR1 = ~val;                    //write the result onto the LED pins
   47   2      IOSET1 =  val;   
   48   2      }
   49   1      
   50   1      }
   51          
   52           
ARM COMPILER V2.00f,  main                                                                 20/02/05  12:51:49  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         main
 PUBLIC         val



*** DATA SEGMENT '?DT0?main':
 00000000          val:
 00000000           BEGIN_INIT
 00000000  00000000  DD          0x0
 00000004           END_INIT



*** CODE SEGMENT '?PR?main?main':
   28: int main(void)
 00000000  B500      PUSH        {LR}
   31: VPBDIV = 0x02;          //Set the Pclk to 30 Mhz
 00000002  2102      MOV         R1,#0x2
 00000004  4800      LDR         R0,=0xE01FC100
 00000006  7001      STRB        R1,[R0,#0x0]
   32: IODIR1 = 0x00FF0000;    // P1.16..23 defined as Outputs  
 00000008  4800      LDR         R1,=0xFF0000
 0000000A  4800      LDR         R0,=0xE0028018
 0000000C  6001      STR         R1,[R0,#0x0]
   33: ADCR   = 0x00270601;    // Setup A/D: 10-bit AIN0 @ 3MHz 
 0000000E  4800      LDR         R1,=0x270601
 00000010  4800      LDR         R0,=0xE0034000
 00000012  6001      STR         R1,[R0,#0x0]
   34: ADCR  |= 0x01000000;    // Start A/D Conversion 
 00000014  4800      LDR         R2,=0x1000000
 00000016  4800      LDR         R0,=0xE0034000
 00000018  6801      LDR         R1,[R0,#0x0]
 0000001A  4311      ORR         R1,R2
 0000001C  6001      STR         R1,[R0,#0x0]
   39: do
 0000001E          L_6:
 0000001E          L_5:
   41:     val = ADDR;                   // Read A/D Data Register 
 0000001E  4800      LDR         R0,=0xE0034004
 00000020  6801      LDR         R1,[R0,#0x0]
 00000022  4800      LDR         R0,=val ; val
 00000024  6001      STR         R1,[R0,#0x0] ; val
   42: }        
 00000026  4800      LDR         R0,=val ; val
 00000028  6801      LDR         R1,[R0,#0x0] ; val
 0000002A  4800      LDR         R0,=0x80000000
 0000002C  4201      TST         R1,R0
 0000002E  D0F6      BEQ         L_5  ; T=0x0000001E
   44: val = ((val >> 6) & 0x03FF)<<16;  //Extract the A/D result 
 00000030  0989      LSR         R1,R1,#0x6
 00000032  4800      LDR         R0,=0x3FF
 00000034  4001      AND         R1,R0
 00000036  0409      LSL         R1,R1,#0x10
 00000038  4800      LDR         R0,=val ; val
 0000003A  6001      STR         R1,[R0,#0x0] ; val
   46: IOCLR1 = ~val;                    //write the result onto the LED pins
 0000003C  4800      LDR         R0,=val ; val
 0000003E  6801      LDR         R1,[R0,#0x0] ; val
 00000040  43CA      MVN         R2,R1
 00000042  4800      LDR         R0,=0xE002801C
 00000044  6002      STR         R2,[R0,#0x0]
   47: IOSET1 =  val;   
 00000046  4800      LDR         R0,=0xE0028014
ARM COMPILER V2.00f,  main                                                                 20/02/05  12:51:49  PAGE 3   

 00000048  6001      STR         R1,[R0,#0x0]
   48: }
 0000004A  E7E8      B           L_6  ; T=0x0000001E
 0000004C  BC08      POP         {R3}
 0000004E  4718      BX          R3
 00000050          ENDP ; 'main'



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