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

📄 time.lst

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


ARM COMPILER V2.51a, COMPILATION OF MODULE Time
OBJECT MODULE PLACED IN .\Obj\Time.obj
COMPILER INVOKED BY: f:\Keilarm\ARM\BIN\CA.exe Time.c THUMB OPTIMIZE(7,SPEED) BROWSE DEBUG PRINT(.\LST\TIME.LST) TABS(4)
                    - OBJECT(.\Obj\Time.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          /*  TIME.C:  Time Functions for 100Hz Clock Tick                              */
    7          /*                                                                            */
    8          /******************************************************************************/
    9          
   10          #include <LPC21XX.H>                          // LPC21XX Peripheral Registers
   11          #include "Timer.h"
   12          
   13          
   14          long timeval;
   15          
   16          /* Timer Counter 0 Interrupt executes each 10ms @ 60 MHz CPU Clock */
   17          void tc0 (void) __irq  {
   18   1        ++timeval;
   19   1        T0IR        = 1;                            // Clear interrupt flag
   20   1        VICVectAddr = 0;                            // Acknowledge Interrupt
   21   1      }
   22          
   23          
   24          /* Setup the Timer Counter 0 Interrupt */
   25          void init_timer (void) {
   26   1        T0MR0 = 149999;                             // 10mSec = 150.000-1 counts
   27   1        T0MCR = 3;                                  // Interrupt and Reset on MR0
   28   1        T0TCR = 1;                                  // Timer0 Enable
   29   1        VICVectAddr0 = (unsigned long)tc0;          // set interrupt vector in 0
   30   1        VICVectCntl0 = 0x20 | 4;                    // use it for Timer 0 Interrupt
   31   1        VICIntEnable = 0x00000010;                  // Enable Timer0 Interrupt
   32   1      }
ARM COMPILER V2.51a,  Time                                                                 20/04/06  21:55:22  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** PUBLICS:
 PUBLIC         init_timer?T
 PUBLIC         tc0?A
 PUBLIC         timeval



*** DATA SEGMENT '?DT0?Time':
 00000000          timeval:
 00000000            DS          4



*** CODE SEGMENT '?PR?tc0?A?Time':
   17: void tc0 (void) __irq  {
 00000000  E92D0003  STMDB       R13!,{R0-R1}
   18:   ++timeval;
 00000004  E5100000  LDR         R0,=timeval ; timeval
 00000008  E5901000  LDR         R1,[R0,#0x0] ; timeval
 0000000C  E2811001  ADD         R1,R1,#0x0001
 00000010  E5801000  STR         R1,[R0,#0x0] ; timeval
   19:   T0IR        = 1;                            // Clear interrupt flag
 00000014  E3A01001  MOV         R1,#0x1
 00000018  E5100000  LDR         R0,=0xE0004000
 0000001C  E5801000  STR         R1,[R0,#0x0]
   20:   VICVectAddr = 0;                            // Acknowledge Interrupt
 00000020  E3A01000  MOV         R1,#0x0
 00000024  E5100000  LDR         R0,=0xFFFFF030
 00000028  E5801000  STR         R1,[R0,#0x0]
   21: }
 0000002C  E8BD0003  LDMIA       R13!,{R0-R1}
 00000030  E25EF004  SUBS        R15,R14,#0x0004
 00000034          ENDP ; 'tc0?A'


*** CODE SEGMENT '?PR?init_timer?T?Time':
   26:   T0MR0 = 149999;                             // 10mSec = 150.000-1 counts
 00000000  4800      LDR         R1,=0x249EF
 00000002  4800      LDR         R0,=0xE0004018
 00000004  6001      STR         R1,[R0,#0x0]
   27:   T0MCR = 3;                                  // Interrupt and Reset on MR0
 00000006  2103      MOV         R1,#0x3
 00000008  4800      LDR         R0,=0xE0004014
 0000000A  6001      STR         R1,[R0,#0x0]
   28:   T0TCR = 1;                                  // Timer0 Enable
 0000000C  2101      MOV         R1,#0x1
 0000000E  4800      LDR         R0,=0xE0004004
 00000010  6001      STR         R1,[R0,#0x0]
   29:   VICVectAddr0 = (unsigned long)tc0;          // set interrupt vector in 0
 00000012  4900      LDR         R1,=tc0?A ; tc0?A
 00000014  4800      LDR         R0,=0xFFFFF100
 00000016  6001      STR         R1,[R0,#0x0]
   30:   VICVectCntl0 = 0x20 | 4;                    // use it for Timer 0 Interrupt
 00000018  2124      MOV         R1,#0x24
 0000001A  4800      LDR         R0,=0xFFFFF200
 0000001C  6001      STR         R1,[R0,#0x0]
   31:   VICIntEnable = 0x00000010;                  // Enable Timer0 Interrupt
 0000001E  2110      MOV         R1,#0x10
 00000020  4800      LDR         R0,=0xFFFFF010
 00000022  6001      STR         R1,[R0,#0x0]
   32: }
 00000024  4770      BX          R14
 00000026          ENDP ; 'init_timer?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =         4
  const size           =    ------
ARM COMPILER V2.51a,  Time                                                                 20/04/06  21:55:22  PAGE 3   

End of Module Information.


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

⌨️ 快捷键说明

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