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

📄 debugtimer.cod

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

	TTL	C:\WINCE500\PLATFORM\Ep93xx\Src\Bootloader\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
|$T37153| DCD	|$L37152|
	DCD	0x40000800
; Function compile flags: /Ods

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

  00000		 |DebugTimerInit| PROC

; 37   : {

  00000		 |$L37152|
  00000		 |$M37150|

; 38   :     *TIM_DEBUGVALUEHIGH = 0;            

  00000	e59f2014	 ldr         r2, [pc, #0x14]
  00004	e3a03000	 mov         r3, #0
  00008	e5823000	 str         r3, [r2]

; 39   :     *TIM_DEBUGVALUEHIGH = DEBUGVALUEHIGH_ENABLE;

  0000c	e59f2008	 ldr         r2, [pc, #8]
  00010	e3a03c01	 mov         r3, #1, 24
  00014	e5823000	 str         r3, [r2]

; 40   : }

  00018	e12fff1e	 bx          lr
  0001c		 |$L37155|
  0001c	80810064	 DCD         0x80810064
  00020		 |$M37151|

			 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
|$T37162| DCD	|$L37161|
	DCD	0x40001501
; Function compile flags: /Ods

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

  00000		 |GetSystemTimeInMsec| PROC

; 47   : {          

  00000		 |$L37161|
  00000	e24dd008	 sub         sp, sp, #8
  00004		 |$M37159|

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

  00004	e59f3044	 ldr         r3, [pc, #0x44]
  00008	e5933000	 ldr         r3, [r3]
  0000c	e58d3000	 str         r3, [sp]

; 51   :     dwValue >>= 10;                 

  00010	e59d3000	 ldr         r3, [sp]
  00014	e1a03523	 mov         r3, r3, lsr #10
  00018	e58d3000	 str         r3, [sp]

; 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;

  0001c	e59f3028	 ldr         r3, [pc, #0x28]
  00020	e5933000	 ldr         r3, [r3]
  00024	e20330ff	 and         r3, r3, #0xFF
  00028	e1a02b03	 mov         r2, r3, lsl #22
  0002c	e59d3000	 ldr         r3, [sp]
  00030	e1833002	 orr         r3, r3, r2
  00034	e58d3000	 str         r3, [sp]

; 57   :     return dwValue;

  00038	e59d3000	 ldr         r3, [sp]
  0003c	e58d3004	 str         r3, [sp, #4]
  00040	e59d0004	 ldr         r0, [sp, #4]

; 58   : }

  00044	e28dd008	 add         sp, sp, #8
  00048	e12fff1e	 bx          lr
  0004c		 |$L37164|
  0004c	80810064	 DCD         0x80810064
  00050	80810060	 DCD         0x80810060
  00054		 |$M37160|

			 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
|$T37171| DCD	|$L37170|
	DCD	0x40001201
; Function compile flags: /Ods

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

  00000		 |GetSystemTimeInUSec| PROC

; 65   : {          

  00000		 |$L37170|
  00000	e24dd010	 sub         sp, sp, #0x10
  00004		 |$M37168|

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

  00004	e59f3038	 ldr         r3, [pc, #0x38]
  00008	e5933000	 ldr         r3, [r3]
  0000c	e58d3000	 str         r3, [sp]

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

  00010	e59f3028	 ldr         r3, [pc, #0x28]
  00014	e5933000	 ldr         r3, [r3]
  00018	e20330ff	 and         r3, r3, #0xFF
  0001c	e58d3004	 str         r3, [sp, #4]

; 73   : 
; 74   :     return liValue.QuadPart;

  00020	e59d2000	 ldr         r2, [sp]
  00024	e59d3004	 ldr         r3, [sp, #4]
  00028	e58d2008	 str         r2, [sp, #8]
  0002c	e58d300c	 str         r3, [sp, #0xC]
  00030	e59d0008	 ldr         r0, [sp, #8]
  00034	e59d100c	 ldr         r1, [sp, #0xC]

; 75   : }

  00038	e28dd010	 add         sp, sp, #0x10
  0003c	e12fff1e	 bx          lr
  00040		 |$L37173|
  00040	80810064	 DCD         0x80810064
  00044	80810060	 DCD         0x80810060
  00048		 |$M37169|

			 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
|$T37179| DCD	|$L37178|
	DCD	0x40001804
; Function compile flags: /Ods

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

  00000		 |DelayInMsec| PROC

; 87   : {

  00000		 |$L37178|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd010	 sub         sp, sp, #0x10
  00010		 |$M37176|

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

  00010	eb000000	 bl          GetSystemTimeInMsec
  00014	e58d0008	 str         r0, [sp, #8]
  00018	e59d3008	 ldr         r3, [sp, #8]
  0001c	e58d3000	 str         r3, [sp]

; 91   :     passed=0;

  00020	e3a03000	 mov         r3, #0
  00024	e58d3004	 str         r3, [sp, #4]
  00028		 |$L37105|

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

  00028	e59d2004	 ldr         r2, [sp, #4]
  0002c	e59d3018	 ldr         r3, [sp, #0x18]
  00030	e1520003	 cmp         r2, r3
  00034	2a000006	 bcs         |$L37106|

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

  00038	eb000000	 bl          GetSystemTimeInMsec
  0003c	e58d000c	 str         r0, [sp, #0xC]
  00040	e59d200c	 ldr         r2, [sp, #0xC]
  00044	e59d3000	 ldr         r3, [sp]
  00048	e0423003	 sub         r3, r2, r3
  0004c	e58d3004	 str         r3, [sp, #4]

; 99   :     }

  00050	eafffff4	 b           |$L37105|
  00054		 |$L37106|

; 100  : }

  00054	e28dd010	 add         sp, sp, #0x10
  00058	e89d6000	 ldmia       sp, {sp, lr}
  0005c	e12fff1e	 bx          lr
  00060		 |$M37177|

			 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
|$T37186| DCD	|$L37185|
	DCD	0x40001704
; Function compile flags: /Ods

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

  00000		 |DelayInuSec| PROC

; 110  : {

  00000		 |$L37185|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd008	 sub         sp, sp, #8
  00010		 |$M37183|

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

  00010	e59f3040	 ldr         r3, [pc, #0x40]
  00014	e5933000	 ldr         r3, [r3]
  00018	e58d3000	 str         r3, [sp]

; 114  :     passed=0;

  0001c	e3a03000	 mov         r3, #0
  00020	e58d3004	 str         r3, [sp, #4]
  00024		 |$L37114|

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

  00024	e59d2004	 ldr         r2, [sp, #4]
  00028	e59d3010	 ldr         r3, [sp, #0x10]
  0002c	e1520003	 cmp         r2, r3
  00030	2a000005	 bcs         |$L37115|

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

  00034	e59f301c	 ldr         r3, [pc, #0x1C]
  00038	e5932000	 ldr         r2, [r3]
  0003c	e59d3000	 ldr         r3, [sp]
  00040	e0423003	 sub         r3, r2, r3
  00044	e58d3004	 str         r3, [sp, #4]

; 122  :     }

  00048	eafffff5	 b           |$L37114|
  0004c		 |$L37115|

; 123  : }

  0004c	e28dd008	 add         sp, sp, #8
  00050	e89d6000	 ldmia       sp, {sp, lr}
  00054	e12fff1e	 bx          lr
  00058		 |$L37188|
  00058	80810060	 DCD         0x80810060
  0005c		 |$M37184|

			 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
|$T37195| DCD	|$L37194|
	DCD	0x40001304
; Function compile flags: /Ods

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

  00000		 |OEMQueryPerformanceCounter| PROC

; 163  : {

  00000		 |$L37194|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd010	 sub         sp, sp, #0x10
  00010		 |$M37192|

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

  00010	eb000000	 bl          GetSystemTimeInUSec
  00014	e58d100c	 str         r1, [sp, #0xC]
  00018	e58d0008	 str         r0, [sp, #8]
  0001c	e59d2008	 ldr         r2, [sp, #8]
  00020	e59d3018	 ldr         r3, [sp, #0x18]
  00024	e5832000	 str         r2, [r3]
  00028	e59d200c	 ldr         r2, [sp, #0xC]
  0002c	e59d3018	 ldr         r3, [sp, #0x18]
  00030	e5832004	 str         r2, [r3, #4]

; 165  :     return TRUE;

  00034	e3a03001	 mov         r3, #1
  00038	e58d3000	 str         r3, [sp]
  0003c	e59d0000	 ldr         r0, [sp]

; 166  : }

  00040	e28dd010	 add         sp, sp, #0x10
  00044	e89d6000	 ldmia       sp, {sp, lr}
  00048	e12fff1e	 bx          lr
  0004c		 |$M37193|

			 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
|$T37203| DCD	|$L37202|
	DCD	0x40001104
; Function compile flags: /Ods

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

  00000		 |OEMQueryPerformanceFrequency| PROC

; 208  : {

  00000		 |$L37202|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd004	 sub         sp, sp, #4
  00010		 |$M37200|

; 209  :     lpliPerformanceFreq->HighPart = 0;

  00010	e59d300c	 ldr         r3, [sp, #0xC]
  00014	e2832004	 add         r2, r3, #4
  00018	e3a03000	 mov         r3, #0
  0001c	e5823000	 str         r3, [r2]

; 210  :     lpliPerformanceFreq->LowPart  = TIMER_DEBUG_FREQ;

  00020	e59d200c	 ldr         r2, [sp, #0xC]
  00024	e3a0380f	 mov         r3, #0xF, 16
  00028	e5823000	 str         r3, [r2]

; 211  :     return TRUE;

  0002c	e3a03001	 mov         r3, #1
  00030	e58d3000	 str         r3, [sp]
  00034	e59d0000	 ldr         r0, [sp]

; 212  : }

  00038	e28dd004	 add         sp, sp, #4
  0003c	e89d6000	 ldmia       sp, {sp, lr}
  00040	e12fff1e	 bx          lr
  00044		 |$M37201|

			 ENDP  ; |OEMQueryPerformanceFrequency|

	END

⌨️ 快捷键说明

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