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

📄 debugtimer.cod

📁 Ep93XX TionProV2 BSP
💻 COD
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237 

	TTL	C:\WINCE500\PLATFORM\Ep93xx\Src\Kernel\Hal\Common\.\debugtimer.c
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|DebugTimerInit|
; File c:\wince500\platform\ep93xx\src\kernel\hal\common\debugtimer.c

  00000			 AREA	 |.text| { |DebugTimerInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$DebugTimerInit|, PDATA, SELECTION=5, ASSOC=|.text| { |DebugTimerInit| } ; comdat associative
|$T14267| DCD	|$L14266|
	DCD	0x40000700
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |DebugTimerInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |DebugTimerInit| PROC

; 37   : {

  00000		 |$L14266|
  00000		 |$M14264|

; 38   :     *TIM_DEBUGVALUEHIGH = 0;            

  00000	e59f3010	 ldr         r3, [pc, #0x10]
  00004	e3a02000	 mov         r2, #0
  00008	e5832000	 str         r2, [r3]

; 39   :     *TIM_DEBUGVALUEHIGH = DEBUGVALUEHIGH_ENABLE;

  0000c	e3a02c01	 mov         r2, #1, 24
  00010	e5832000	 str         r2, [r3]

; 40   : }

  00014	e12fff1e	 bx          lr
  00018		 |$L14269|
  00018	b0810064	 DCD         0xb0810064
  0001c		 |$M14265|

			 ENDP  ; |DebugTimerInit|

	EXPORT	|GetSystemTimeInMsec|

  00000			 AREA	 |.text| { |GetSystemTimeInMsec| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$GetSystemTimeInMsec|, PDATA, SELECTION=5, ASSOC=|.text| { |GetSystemTimeInMsec| } ; comdat associative
|$T14280| DCD	|$L14279|
	DCD	0x40000a00
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |GetSystemTimeInMsec| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |GetSystemTimeInMsec| PROC

; 47   : {          

  00000		 |$L14279|
  00000		 |$M14277|

; 48   :     DWORD dwValue;
; 49   : 
; 50   :     dwValue = *TIM_DEBUGVALUELOW;

  00000	e59f301c	 ldr         r3, [pc, #0x1C]

; 51   :     dwValue >>= 10;                 
; 52   : 
; 53   : 
; 54   :     // div by 1024 to get msec from usec (should really use
; 55   :     // 1000 instead of 1024, but it is close enough
; 56   :     dwValue|= (*TIM_DEBUGVALUEHIGH & DEBUGVALUEHIGH_MASK)<<22;

  00004	e59f2014	 ldr         r2, [pc, #0x14]
  00008	e5933000	 ldr         r3, [r3]
  0000c	e5922000	 ldr         r2, [r2]
  00010	e1a01523	 mov         r1, r3, lsr #10
  00014	e20230ff	 and         r3, r2, #0xFF
  00018	e1810b03	 orr         r0, r1, r3, lsl #22

; 57   :     return dwValue;
; 58   : }

  0001c	e12fff1e	 bx          lr
  00020		 |$L14282|
  00020	b0810064	 DCD         0xb0810064
  00024	b0810060	 DCD         0xb0810060
  00028		 |$M14278|

			 ENDP  ; |GetSystemTimeInMsec|

	EXPORT	|GetSystemTimeInUSec|

  00000			 AREA	 |.text| { |GetSystemTimeInUSec| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$GetSystemTimeInUSec|, PDATA, SELECTION=5, ASSOC=|.text| { |GetSystemTimeInUSec| } ; comdat associative
|$T14291| DCD	|$L14290|
	DCD	0x40000e01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |GetSystemTimeInUSec| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |GetSystemTimeInUSec| PROC

; 65   : {          

  00000		 |$L14290|
  00000	e24dd008	 sub         sp, sp, #8
  00004		 |$M14288|

; 66   :     volatile LARGE_INTEGER liValue;
; 67   :     
; 68   :     //
; 69   :     // Must read the low value first.
; 70   :     //
; 71   :     liValue.LowPart = (ULONG)*TIM_DEBUGVALUELOW;

  00004	e59f3028	 ldr         r3, [pc, #0x28]

; 72   :     liValue.HighPart = (ULONG)(*TIM_DEBUGVALUEHIGH & DEBUGVALUEHIGH_MASK);

  00008	e59f2020	 ldr         r2, [pc, #0x20]
  0000c	e5933000	 ldr         r3, [r3]
  00010	e58d3000	 str         r3, [sp]
  00014	e5923000	 ldr         r3, [r2]
  00018	e20330ff	 and         r3, r3, #0xFF
  0001c	e58d3004	 str         r3, [sp, #4]

; 73   : 
; 74   :     return liValue.QuadPart;

  00020	e59d0000	 ldr         r0, [sp]
  00024	e59d1004	 ldr         r1, [sp, #4]

; 75   : }

  00028	e28dd008	 add         sp, sp, #8
  0002c	e12fff1e	 bx          lr
  00030		 |$L14293|
  00030	b0810064	 DCD         0xb0810064
  00034	b0810060	 DCD         0xb0810060
  00038		 |$M14289|

			 ENDP  ; |GetSystemTimeInUSec|

	EXPORT	|DelayInMsec|

  00000			 AREA	 |.text| { |DelayInMsec| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$DelayInMsec|, PDATA, SELECTION=5, ASSOC=|.text| { |DelayInMsec| } ; comdat associative
|$T14315| DCD	|$L14314|
	DCD	0x40001601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |DelayInMsec| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |DelayInMsec| PROC

; 87   : {

  00000		 |$L14314|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M14312|
  00004	e3500000	 cmp         r0, #0

; 88   :     DWORD passed, startTime;
; 89   : 
; 90   :     startTime=GetSystemTimeInMsec();

  00008	e59fe044	 ldr         lr, [pc, #0x44]
  0000c	e59f403c	 ldr         r4, [pc, #0x3C]
  00010	e59e2000	 ldr         r2, [lr]
  00014	e5943000	 ldr         r3, [r4]
  00018	e1a02522	 mov         r2, r2, lsr #10
  0001c	e20330ff	 and         r3, r3, #0xFF
  00020	e1825b03	 orr         r5, r2, r3, lsl #22

; 91   :     passed=0;
; 92   :     
; 93   :     //
; 94   :     // Get stuck in this loop until 
; 95   :     //
; 96   :     while ( passed < msec) 

  00024	0a000007	 beq         |$L14218|
  00028		 |$L14217|

; 97   :     {
; 98   :        passed = GetSystemTimeInMsec()-startTime;

  00028	e59e3000	 ldr         r3, [lr]
  0002c	e5942000	 ldr         r2, [r4]
  00030	e1a01523	 mov         r1, r3, lsr #10
  00034	e20230ff	 and         r3, r2, #0xFF
  00038	e1813b03	 orr         r3, r1, r3, lsl #22
  0003c	e0433005	 sub         r3, r3, r5
  00040	e1530000	 cmp         r3, r0
  00044	3afffff7	 bcc         |$L14217|
  00048		 |$L14218|

; 99   :     }
; 100  : }

  00048	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  0004c	e12fff1e	 bx          lr
  00050		 |$L14317|
  00050	b0810064	 DCD         0xb0810064
  00054	b0810060	 DCD         0xb0810060
  00058		 |$M14313|

			 ENDP  ; |DelayInMsec|

	EXPORT	|DelayInuSec|

  00000			 AREA	 |.text| { |DelayInuSec| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$DelayInuSec|, PDATA, SELECTION=5, ASSOC=|.text| { |DelayInuSec| } ; comdat associative
|$T14328| DCD	|$L14327|
	DCD	0x40000a00
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |DelayInuSec| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |DelayInuSec| PROC

; 110  : {

  00000		 |$L14327|
  00000		 |$M14325|
  00000	e3500000	 cmp         r0, #0

; 111  :     DWORD passed, startTime;
; 112  : 
; 113  :     startTime= *TIM_DEBUGVALUELOW;

  00004	e59f2018	 ldr         r2, [pc, #0x18]
  00008	e5921000	 ldr         r1, [r2]

; 114  :     passed=0;
; 115  :     
; 116  :     //
; 117  :     // Get stuck in this loop until 
; 118  :     //
; 119  :     while ( passed < uS) 

  0000c	0a000003	 beq         |$L14227|
  00010		 |$L14226|

; 120  :     {
; 121  :        passed = (*TIM_DEBUGVALUELOW - startTime);

  00010	e5923000	 ldr         r3, [r2]
  00014	e0433001	 sub         r3, r3, r1
  00018	e1530000	 cmp         r3, r0
  0001c	3afffffb	 bcc         |$L14226|
  00020		 |$L14227|

; 122  :     }
; 123  : }

  00020	e12fff1e	 bx          lr
  00024		 |$L14330|
  00024	b0810060	 DCD         0xb0810060
  00028		 |$M14326|

			 ENDP  ; |DelayInuSec|

	EXPORT	|OEMQueryPerformanceCounter|

  00000			 AREA	 |.text| { |OEMQueryPerformanceCounter| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$OEMQueryPerformanceCounter|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMQueryPerformanceCounter| } ; comdat associative
|$T14343| DCD	|$L14342|
	DCD	0x40001201
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |OEMQueryPerformanceCounter| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |OEMQueryPerformanceCounter| PROC

; 163  : {

  00000		 |$L14342|
  00000	e24dd008	 sub         sp, sp, #8
  00004		 |$M14340|
  00004	e1a01000	 mov         r1, r0

; 164  :     lpliPerformanceCount->QuadPart = (LONGLONG)GetSystemTimeInUSec();    

  00008	e59f3034	 ldr         r3, [pc, #0x34]
  0000c	e59f202c	 ldr         r2, [pc, #0x2C]

; 165  :     return TRUE;

  00010	e3a00001	 mov         r0, #1
  00014	e5933000	 ldr         r3, [r3]
  00018	e58d3000	 str         r3, [sp]
  0001c	e5923000	 ldr         r3, [r2]
  00020	e20330ff	 and         r3, r3, #0xFF
  00024	e58d3004	 str         r3, [sp, #4]
  00028	e59d3000	 ldr         r3, [sp]
  0002c	e59d2004	 ldr         r2, [sp, #4]
  00030	e5813000	 str         r3, [r1]
  00034	e5812004	 str         r2, [r1, #4]

; 166  : }

  00038	e28dd008	 add         sp, sp, #8
  0003c	e12fff1e	 bx          lr
  00040		 |$L14345|
  00040	b0810064	 DCD         0xb0810064
  00044	b0810060	 DCD         0xb0810060
  00048		 |$M14341|

			 ENDP  ; |OEMQueryPerformanceCounter|

	EXPORT	|OEMQueryPerformanceFrequency|

  00000			 AREA	 |.text| { |OEMQueryPerformanceFrequency| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$OEMQueryPerformanceFrequency|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMQueryPerformanceFrequency| } ; comdat associative
|$T14354| DCD	|$L14353|
	DCD	0x40000500
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |OEMQueryPerformanceFrequency| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |OEMQueryPerformanceFrequency| PROC

; 208  : {

  00000		 |$L14353|
  00000		 |$M14351|

; 209  :     lpliPerformanceFreq->HighPart = 0;

  00000	e3a03000	 mov         r3, #0

; 210  :     lpliPerformanceFreq->LowPart  = TIMER_DEBUG_FREQ;

  00004	e3a0280f	 mov         r2, #0xF, 16
  00008	e880000c	 stmia       r0, {r2, r3}

; 211  :     return TRUE;

  0000c	e3a00001	 mov         r0, #1

; 212  : }

  00010	e12fff1e	 bx          lr
  00014		 |$M14352|

			 ENDP  ; |OEMQueryPerformanceFrequency|

	END

⌨️ 快捷键说明

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