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

📄 blinky.lst

📁 飞利浦ARM7 LPC2103 示例程序
💻 LST
字号:
ARM COMPILER V2.51a,  Blinky                                                               20/04/06  21:55:22  PAGE 1   


ARM COMPILER V2.51a, COMPILATION OF MODULE Blinky
OBJECT MODULE PLACED IN .\Obj\Blinky.obj
COMPILER INVOKED BY: f:\Keilarm\ARM\BIN\CA.exe Blinky.c THUMB OPTIMIZE(7,SPEED) BROWSE DEBUG PRINT(.\LST\BLINKY.LST) TAB
                    -S(4) OBJECT(.\Obj\Blinky.obj) 

stmt  level    source

    1          /******************************************************************************/
    2          /*  This file is part of the uVision/ARM development tools                    */
    3          /*  Copyright KEIL ELEKTRONIK GmbH 2002-2004                                  */
    4          /******************************************************************************/
    5          /*                                                                            */
    6          /*  BLINKY.C:  LED Flasher                                                    */
    7          /*                                                                            */
    8          /******************************************************************************/
    9          
   10          #include <LPC21xx.H>                            /* LPC21xx definitions */
   11          #include "Timer.h"
   12          
   13          extern long volatile timeval;
   14          
   15          
   16          void wait (void)  {                             /* wait function */
   17   1        unsigned long i;
   18   1      
   19   1        i = timeval;
   20   1        while ((i + 10) != timeval);                  /* wait 100ms */
   21   1      }
   22          
   23          
   24          int main (void)  {
   25   1        unsigned int j;                               /* LED var */
   26   1      
   27   1        IODIR1 = 0xFF0000;                            /* P1.16..23 defined as Outputs */
   28   1      
   29   1        init_timer();
   30   1      
   31   1        while (1)  {                                  /* Loop forever */
   32   2          for (j = 0x010000; j < 0x800000; j <<= 1) { /* Blink LED 0,1,2,3,4,5,6 */
   33   3            IOSET1 = j;                               /* Turn on LED */
   34   3            wait ();                                  /* call wait function */
   35   3            IOCLR1 = j;                               /* Turn off LED */
   36   3          }
   37   2          for (j = 0x800000; j > 0x010000; j >>=1 ) { /* Blink LED 7,6,5,4,3,2,1 */
   38   3            IOSET1 = j;                               /* Turn on LED */
   39   3            wait ();                                  /* call wait function */
   40   3            IOCLR1 = j;                               /* Turn off LED */
   41   3          }
   42   2        }
   43   1      }
ARM COMPILER V2.51a,  Blinky                                                               20/04/06  21:55:22  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (init_timer?T)
 EXTERN DATA (timeval)
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         wait?T
 PUBLIC         main



*** CODE SEGMENT '?PR?wait?T?Blinky':
   16: void wait (void)  {                             /* wait function */
 00000000            ; SCOPE-START
   19:   i = timeval;
 00000000  4800      LDR         R0,=timeval ; timeval
 00000002  6800      LDR         R0,[R0,#0x0] ; timeval
 00000004  ---- Variable 'i' assigned to Register 'R0' ----
   20:   while ((i + 10) != timeval);                  /* wait 100ms */
 00000004          L_1:
 00000004  4800      LDR         R1,=timeval ; timeval
 00000006  680A      LDR         R2,[R1,#0x0] ; timeval
 00000008  1C01      MOV         R1,R0 ; i
 0000000A  310A      ADD         R1,#0xA
 0000000C  4291      CMP         R1,R2
 0000000E  D1F9      BNE         L_1  ; T=0x00000004
 00000010            ; SCOPE-END
   21: }
 00000010  4770      BX          R14
 00000012          ENDP ; 'wait?T'


*** CODE SEGMENT '?PR?main?Blinky':
   24: int main (void)  {
 00000000  B500      PUSH        {LR}
 00000002            ; SCOPE-START
   27:   IODIR1 = 0xFF0000;                            /* P1.16..23 defined as Outputs */
 00000002  4800      LDR         R1,=0xFF0000
 00000004  4800      LDR         R0,=0xE0028018
 00000006  6001      STR         R1,[R0,#0x0]
   29:   init_timer();
 00000008  F7FF      BL          init_timer?T  ; T=0x0001  (1)
 0000000A  FFFA      BL          init_timer?T  ; T=0x0001  (2)
   32:     for (j = 0x010000; j < 0x800000; j <<= 1) { /* Blink LED 0,1,2,3,4,5,6 */
 0000000C          L_13:
 0000000C  4800      LDR         R3,=0x10000
 0000000E  ---- Variable 'j' assigned to Register 'R3' ----
 0000000E          L_12:
   33:       IOSET1 = j;                               /* Turn on LED */
 0000000E  1C19      MOV         R1,R3 ; j
 00000010  4800      LDR         R0,=0xE0028014
 00000012  6001      STR         R1,[R0,#0x0]
   34:       wait ();                                  /* call wait function */
 00000014  F7FF      BL          wait?T  ; T=0x0001  (1)
 00000016  FFF4      BL          wait?T  ; T=0x0001  (2)
   35:       IOCLR1 = j;                               /* Turn off LED */
 00000018  1C19      MOV         R1,R3 ; j
 0000001A  4800      LDR         R0,=0xE002801C
 0000001C  6001      STR         R1,[R0,#0x0]
   36:     }
 0000001E  005B      LSL         R3,R3,#0x1 ; j
 00000020  1C19      MOV         R1,R3 ; j
 00000022  4800      LDR         R0,=0x800000
 00000024  4281      CMP         R1,R0 ; j
 00000026  D3F2      BCC         L_12  ; T=0x0000000E
   37:     for (j = 0x800000; j > 0x010000; j >>=1 ) { /* Blink LED 7,6,5,4,3,2,1 */
 00000028  1C03      MOV         R3,R0 ; j
ARM COMPILER V2.51a,  Blinky                                                               20/04/06  21:55:22  PAGE 3   

 0000002A          L_17:
   38:       IOSET1 = j;                               /* Turn on LED */
 0000002A  1C19      MOV         R1,R3 ; j
 0000002C  4800      LDR         R0,=0xE0028014
 0000002E  6001      STR         R1,[R0,#0x0]
   39:       wait ();                                  /* call wait function */
 00000030  F7FF      BL          wait?T  ; T=0x0001  (1)
 00000032  FFE6      BL          wait?T  ; T=0x0001  (2)
   40:       IOCLR1 = j;                               /* Turn off LED */
 00000034  1C19      MOV         R1,R3 ; j
 00000036  4800      LDR         R0,=0xE002801C
 00000038  6001      STR         R1,[R0,#0x0]
   41:     }
 0000003A  085B      LSR         R3,R3,#0x1 ; j
 0000003C  1C18      MOV         R0,R3 ; j
 0000003E  4800      LDR         R1,=0x10000
 00000040  4288      CMP         R0,R1 ; j
 00000042  D8F2      BHI         L_17  ; T=0x0000002A
   42:   }
 00000044  E7E2      B           L_13  ; T=0x0000000C
 00000046            ; SCOPE-END
   43: }
 00000046  BC08      POP         {R3}
 00000048  4718      BX          R3
 0000004A          ENDP ; 'main'



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