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

📄 systime.lst

📁 rtc code for lpc2148
💻 LST
字号:
   1              		.file	"sysTime.c"
   9              	.Ltext0:
  10              		.align	2
  11              		.global	initSysTime
  13              	initSysTime:
  14              	.LFB2:
  15              		.file 1 "sysTime.c"
   1:sysTime.c     **** /******************************************************************************
   2:sysTime.c     ****  *
   3:sysTime.c     ****  * $RCSfile: $
   4:sysTime.c     ****  * $Revision: $
   5:sysTime.c     ****  *
   6:sysTime.c     ****  * This module provides the interface routines for initializing and
   7:sysTime.c     ****  * accessing the system timing functions.
   8:sysTime.c     ****  * Copyright 2004, R O SoftWare
   9:sysTime.c     ****  * No guarantees, warrantees, or promises, implied or otherwise.
  10:sysTime.c     ****  * May be used for hobby or commercial purposes provided copyright
  11:sysTime.c     ****  * notice remains intact.
  12:sysTime.c     ****  *
  13:sysTime.c     ****  *****************************************************************************/
  14:sysTime.c     **** #include "types.h"
  15:sysTime.c     **** #include "LPC21xx.h"
  16:sysTime.c     **** #include "config.h"
  17:sysTime.c     **** #include "sysTime.h"
  18:sysTime.c     **** 
  19:sysTime.c     **** static uint32_t sysTICs;
  20:sysTime.c     **** static uint32_t lastT0TC;
  21:sysTime.c     **** 
  22:sysTime.c     **** /******************************************************************************
  23:sysTime.c     ****  *
  24:sysTime.c     ****  * Function Name: initSysTime()
  25:sysTime.c     ****  *
  26:sysTime.c     ****  * Description:
  27:sysTime.c     ****  *    This function initializes the LPC's Timer 0 for use as the system timer.
  28:sysTime.c     ****  *
  29:sysTime.c     ****  * Calling Sequence: 
  30:sysTime.c     ****  *    void
  31:sysTime.c     ****  *
  32:sysTime.c     ****  * Returns:
  33:sysTime.c     ****  *    void
  34:sysTime.c     ****  *
  35:sysTime.c     ****  *****************************************************************************/
  36:sysTime.c     **** void initSysTime(void)
  37:sysTime.c     **** {
  16              	 args = 0, pretend = 0, frame = 0
  17              		@ frame_needed = 0, uses_anonymous_args = 0
  18              		@ link register save eliminated.
  19              	.LVL0:
  20              		.loc 1 45 0
  38:sysTime.c     ****   // setup Timer 1 to count forever
  39:sysTime.c     ****   T0TCR = TCR_RESET;                    // reset & disable timer 0
  40:sysTime.c     ****   T0PR = T0_PCLK_DIV - 1;               // set the prescale divider
  41:sysTime.c     ****   T0MCR = 0;                            // disable match registers
  42:sysTime.c     ****   T0CCR = 0;                            // disable compare registers
  43:sysTime.c     ****   T0EMR = 0;                            // disable external match register
  44:sysTime.c     ****   T0TCR = TCR_ENABLE;                   // enable timer 0
  45:sysTime.c     ****   sysTICs = 0;
  21              	r3, .L3
  22 0000 2C309FE5 		.loc 1 39 0
  23              		ldr	r2, .L3+4
  24 0004 2C209FE5 		.loc 1 41 0
  25              		mov	r1, #0
  26 0008 0010A0E3 		.loc 1 45 0
  27              		str	r1, [r3, #0]
  28 000c 001083E5 		.loc 1 39 0
  29              		mov	r0, #2
  30 0010 0200A0E3 		.loc 1 44 0
  31              		mov	r3, #1
  32 0014 0130A0E3 		.loc 1 39 0
  33              		str	r0, [r2, #4]
  34 0018 040082E5 		.loc 1 37 0
  35              		@ lr needed for prologue
  36              		.loc 1 40 0
  37              		str	r0, [r2, #12]
  38 001c 0C0082E5 		.loc 1 41 0
  39              		str	r1, [r2, #20]
  40 0020 141082E5 		.loc 1 42 0
  41              		str	r1, [r2, #40]
  42 0024 281082E5 		.loc 1 43 0
  43              		str	r1, [r2, #60]
  44 0028 3C1082E5 		.loc 1 44 0
  45              		str	r3, [r2, #4]
  46 002c 043082E5 		.loc 1 46 0
  46:sysTime.c     **** }
  47              	
  48 0030 1EFF2FE1 		.word	sysTICs
  49              		.word	-536854528
  50              	.LFE2:
  52 0034 04000000 		.align	2
  53 0038 004000E0 		.global	getSysTICs
  55              	getSysTICs:
  56              	.LFB3:
  57              		.loc 1 63 0
  58              		@ args = 0, pretend = 0, frame = 0
  59              		@ frame_needed = 0, uses_anonymous_args = 0
  60              		@ link register save eliminated.
  47:sysTime.c     **** 
  48:sysTime.c     **** /******************************************************************************
  49:sysTime.c     ****  *
  50:sysTime.c     ****  * Function Name: getSysTICs()
  51:sysTime.c     ****  *
  52:sysTime.c     ****  * Description:
  53:sysTime.c     ****  *    This function returns the current syetem time in TICs.
  54:sysTime.c     ****  *
  55:sysTime.c     ****  * Calling Sequence: 
  56:sysTime.c     ****  *    void
  57:sysTime.c     ****  *
  58:sysTime.c     ****  * Returns:
  59:sysTime.c     ****  *    The current time in TICs as represented by sysTICs
  60:sysTime.c     ****  *
  61:sysTime.c     ****  *****************************************************************************/
  62:sysTime.c     **** uint32_t getSysTICs(void)
  63:sysTime.c     **** {
  61              	1 66 0
  62              		ldr	r1, .L7
  63              		.loc 1 64 0
  64              		ldr	r3, .L7+4
  65              		.loc 1 66 0
  64:sysTime.c     ****   uint32_t now = T0TC;
  65:sysTime.c     **** 
  66:sysTime.c     ****   sysTICs += (uint32_t)(now - lastT0TC);
  66              	ip, .L7+8
  67 003c 24109FE5 		.loc 1 64 0
  68              		ldr	r2, [r3, #8]
  69 0040 24309FE5 	.LVL2:
  70              		.loc 1 66 0
  71 0044 24C09FE5 		ldr	r3, [r1, #0]
  72              		ldr	r0, [ip, #0]
  73 0048 082093E5 		rsb	r3, r3, r2
  74              		add	r0, r0, r3
  75              		.loc 1 63 0
  76 004c 003091E5 		@ lr needed for prologue
  77 0050 00009CE5 		.loc 1 67 0
  78 0054 023063E0 		str	r2, [r1, #0]
  79 0058 030080E0 		.loc 1 66 0
  80              		str	r0, [ip, #0]
  81              		.loc 1 69 0
  67:sysTime.c     ****   lastT0TC = now;
  82              	ign	2
  83 005c 002081E5 	.L7:
  84              		.word	lastT0TC
  85 0060 00008CE5 		.word	-536854528
  68:sysTime.c     ****   return sysTICs;
  69:sysTime.c     **** }
  86              	rd	sysTICs
  87 0064 1EFF2FE1 	.LFE3:
  89              		.align	2
  90              		.global	getElapsedSysTICs
  92 006c 004000E0 	getElapsedSysTICs:
  93 0070 04000000 	.LFB4:
  94              		.loc 1 88 0
  95              		@ args = 0, pretend = 0, frame = 0
  96              		@ frame_needed = 0, uses_anonymous_args = 0
  97              	.LVL3:
  98              		str	lr, [sp, #-4]!
  99              	.LCFI0:
 100              	.LBB2:
  70:sysTime.c     **** 
  71:sysTime.c     **** 
  72:sysTime.c     **** /******************************************************************************
  73:sysTime.c     ****  *
  74:sysTime.c     ****  * Function Name: getElapsedSysTICs()
  75:sysTime.c     ****  *
  76:sysTime.c     ****  * Description:
  77:sysTime.c     ****  *    This function then returns the difference in TICs between the
  78:sysTime.c     ****  *    given starting time and the current system time.
  79:sysTime.c     ****  *
  80:sysTime.c     ****  * Calling Sequence: 
  81:sysTime.c     ****  *    The starting time.
  82:sysTime.c     ****  *
  83:sysTime.c     ****  * Returns:
  84:sysTime.c     ****  *    The time difference.
  85:sysTime.c     ****  *
  86:sysTime.c     ****  *****************************************************************************/
  87:sysTime.c     **** uint32_t getElapsedSysTICs(uint32_t startTime)
  88:sysTime.c     **** {
 101              	66 0
 102              		ldr	ip, .L11
 103              		.loc 1 64 0
 104              		ldr	r3, .L11+4
 105 0074 04E02DE5 		.loc 1 66 0
 106              		ldr	lr, .L11+8
 107              		.loc 1 64 0
 108              		ldr	r1, [r3, #8]
 109              	.LVL4:
 110 0078 28C09FE5 		.loc 1 66 0
 111              		ldr	r3, [ip, #0]
 112 007c 28309FE5 		ldr	r2, [lr, #0]
 113              		rsb	r3, r3, r1
 114 0080 28E09FE5 		add	r2, r2, r3
 115              	.LBE3:
 116 0084 081093E5 	.LBE2:
 117              		.loc 1 90 0
 118              		rsb	r0, r0, r2
 119 0088 00309CE5 	.LVL5:
 120 008c 00209EE5 	.LBB4:
 121 0090 013063E0 	.LBB5:
 122 0094 032082E0 		.loc 1 67 0
 123              		str	r1, [ip, #0]
 124              		.loc 1 66 0
  89:sysTime.c     ****   return getSysTICs() - startTime;
  90:sysTime.c     **** }
 125              	
 126 0098 020060E0 	.LBE4:
 127              		.loc 1 90 0
 128              		ldr	pc, [sp], #4
 129              	.L12:
 130              		.align	2
 131 009c 00108CE5 	.L11:
 132              		.word	lastT0TC
 133 00a0 00208EE5 		.word	-536854528
 134              		.word	sysTICs
 135              	.LFE4:
 137 00a4 04F09DE4 		.align	2
 138              		.global	pause
 140              	pause:
 141 00a8 00000000 	.LFB5:
 142 00ac 004000E0 		.loc 1 109 0
 143 00b0 04000000 		@ args = 0, pretend = 0, frame = 0
 144              		@ frame_needed = 0, uses_anonymous_args = 0
 145              	.LVL6:
 146              		stmfd	sp!, {r4, r5, lr}
 147              	.LCFI1:
 148              	.LBB6:
 149              	.LBB7:
 150              		.loc 1 66 0
  91:sysTime.c     **** 
  92:sysTime.c     **** 
  93:sysTime.c     **** /******************************************************************************
  94:sysTime.c     ****  *
  95:sysTime.c     ****  * Function Name: pause()
  96:sysTime.c     ****  *
  97:sysTime.c     ****  * Description:
  98:sysTime.c     ****  *    This function does not return until the specified 'duration' in
  99:sysTime.c     ****  *    TICs has elapsed.
 100:sysTime.c     ****  *
 101:sysTime.c     ****  * Calling Sequence: 
 102:sysTime.c     ****  *    duration - length of time in TICs to wait before returning
 103:sysTime.c     ****  *
 104:sysTime.c     ****  * Returns:
 105:sysTime.c     ****  *    void
 106:sysTime.c     ****  *
 107:sysTime.c     ****  *****************************************************************************/
 108:sysTime.c     **** void pause(uint32_t duration)
 109:sysTime.c     **** {
 151              	0
 152              		ldr	r3, .L19+4
 153              		.loc 1 66 0
 154              		ldr	lr, .L19+8
 155 00b4 30402DE9 		.loc 1 64 0
 156              		ldr	r1, [r3, #8]
 157              	.LVL7:
 158              		.loc 1 66 0
 159              		ldr	r3, [ip, #0]
 160 00b8 38C09FE5 		ldr	r2, [lr, #0]
 161              		rsb	r3, r3, r1
 162 00bc 38309FE5 		add	r5, r2, r3
 163              		.loc 1 67 0
 164 00c0 38E09FE5 		str	r1, [ip, #0]
 165              		.loc 1 66 0
 166 00c4 081093E5 		str	r5, [lr, #0]
 167              	.LBE7:
 168              	.LBE6:
 169 00c8 00309CE5 		.loc 1 109 0
 170 00cc 00209EE5 		mov	r4, r0
 171 00d0 013063E0 	.LVL8:
 172 00d4 035082E0 	.L14:
 173              		.loc 1 112 0
 174 00d8 00108CE5 		mov	r0, r5
 175              		bl	getElapsedSysTICs
 176 00dc 00508EE5 	.LVL9:
 177              		cmp	r0, r4
 178              		bcc	.L14
 179              		.loc 1 114 0
 180 00e0 0040A0E1 		ldmfd	sp!, {r4, r5, pc}
 181              	.L20:
 182              		.align	2
 110:sysTime.c     ****   uint32_t startTime = getSysTICs();
 111:sysTime.c     **** 
 112:sysTime.c     ****   while (getElapsedSysTICs(startTime) < duration)
 183              	6854528
 184 00e4 0500A0E1 		.word	sysTICs
 185 00e8 FEFFFFEB 	.LFE5:
 187 00ec 040050E1 		.bss
 188 00f0 FBFFFF3A 		.align	2
 113:sysTime.c     ****     WDOG();
 114:sysTime.c     **** }
 189              	TC:
 190 00f4 3080BDE8 		.space	4
 191              		.align	2
 192              	sysTICs:
 193              		.space	4
 194 00f8 00000000 		.section	.debug_frame,"",%progbits
 195 00fc 004000E0 	.Lframe0:
 196 0100 04000000 		.4byte	.LECIE0-.LSCIE0
 197              	.LSCIE0:
 198              		.4byte	0xffffffff
 199              		.byte	0x1
 200              		.ascii	"\000"
 201              		.uleb128 0x1
 202 0000 00000000 		.sleb128 -4
 203              		.byte	0xe
 204              		.byte	0xc
 205 0004 00000000 		.uleb128 0xd
 271              		.4byte	.LVL8-.Ltext0
DEFINED SYMBOLS
                            *ABS*:00000000 sysTime.c
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:13     .text:00000000 initSysTime
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:22     .text:00000000 $a
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:52     .text:00000034 $d
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:204    .bss:00000004 sysTICs
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:59     .text:0000003c getSysTICs
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:67     .text:0000003c $a
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:91     .text:00000068 $d
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:201    .bss:00000000 lastT0TC
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:99     .text:00000074 getElapsedSysTICs
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:105    .text:00000074 $a
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:141    .text:000000a8 $d
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:149    .text:000000b4 pause
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:155    .text:000000b4 $a
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/cc42aaaa.s:194    .text:000000f8 $d

NO UNDEFINED SYMBOLS

⌨️ 快捷键说明

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