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

📄 mdppfs.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 3 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237 

	TTL	C:\WINCE500\PLATFORM\Ep93xx\Src\Bootloader\Common\.\mdppfs.c
	CODE32

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

	EXPORT	|NoPPFS| [ DATA ]
	EXPORT	|UART1Started| [ DATA ]
	EXPORT	|UART3Started| [ DATA ]

  00000			 AREA	 |.bss|, NOINIT
|NoPPFS| %	0x4
|UART1Started| % 0x4
|UART3Started| % 0x4

  00000			 AREA	 |.rdata|, DATA, READONLY
|EdbgVendorIds| DCW 0x0
	DCW	0x0
	DCD	0x4033
	DCB	0x1
	DCB	0x0
	DCB	"AD", 0x0
	%	3
	DCW	0x1050
	DCW	0x940
	DCD	0x4005
	DCB	0x1
	DCB	0x0
	DCB	"LS", 0x0
	%	3
	DCW	0x1050
	DCW	0x940
	DCD	0x2078
	DCB	0x1
	DCB	0x0
	DCB	"LS", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8029
	DCD	0xc0f0
	DCB	0x1
	DCB	0x0
	DCB	"KS", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8129
	DCD	0x0
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8139
	DCD	0x900b
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8139
	DCD	0xd0c9
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8139
	DCD	0xe04c
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x1186
	DCW	0x1300
	DCD	0x50ba
	DCB	0x4
	DCB	0x0
	DCB	"DL", 0x0
	%	3
	DCW	0x100b
	DCW	0x20
	DCD	0xa0cc
	DCB	0x5
	DCB	0x0
	DCB	"NG", 0x0
	%	3
	DCW	0x10b7
	DCW	0x9050
	DCD	0x6008
	DCB	0x6
	DCB	0x0
	DCB	"3C", 0x0
	%	3
	DCW	0x10b7
	DCW	0x9200
	DCD	0x476
	DCB	0x6
	DCB	0x0
	DCB	"3C", 0x0
	%	3
	DCW	0x8086
	DCW	0x1039
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x103a
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x1051
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x1229
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x2449
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	EXPORT	|OEMInitParallelPort|
; File c:\wince500\platform\ep93xx\src\kernel\hal\common\mdppfs.c

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

  00000			 AREA	 |.pdata$$OEMInitParallelPort|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMInitParallelPort| } ; comdat associative
|$T38191| DCD	|$L38190|
	DCD	0x40000f01
; Function compile flags: /Ods

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

  00000		 |OEMInitParallelPort| PROC

; 99   : {

  00000		 |$L38190|
  00000	e24dd004	 sub         sp, sp, #4
  00004		 |$M38188|

; 100  :     *IDE_CTRL   =  PAR_NREAD | PAR_NWRITE | IDE_CTRL_CS1;

  00004	e3a03102	 mov         r3, #2, 2
  00008	e383280a	 orr         r2, r3, #0xA, 16
  0000c	e3a03062	 mov         r3, #0x62
  00010	e5823000	 str         r3, [r2]

; 101  :     *IDE_CFG    = IDE_CFG_IDEEN | IDE_CFG_PIOEN | IDE_CFG_PIO4 | (3<<IDE_CFG_WST_SHIFT);

  00014	e59f201c	 ldr         r2, [pc, #0x1C]
  00018	e3a03d0d	 mov         r3, #0xD, 26
  0001c	e3833003	 orr         r3, r3, #3
  00020	e5823000	 str         r3, [r2]

; 102  :     return 0;

  00024	e3a03000	 mov         r3, #0
  00028	e58d3000	 str         r3, [sp]
  0002c	e59d0000	 ldr         r0, [sp]

; 103  : }

  00030	e28dd004	 add         sp, sp, #4
  00034	e12fff1e	 bx          lr
  00038		 |$L38193|
  00038	800a0004	 DCD         0x800a0004
  0003c		 |$M38189|

			 ENDP  ; |OEMInitParallelPort|

	EXPORT	|OEMParallelPortGetByte|
	EXPORT	|??_C@_0CM@FEFJD@OEMParallelPortGetByte?3?5status?5t@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CM@EHKFDPED@OEMParallelPortGetByte?3?5status?5t@| [ DATA ] ; `string'
	IMPORT	|EdbgOutputDebugString|

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

  00000			 AREA	 |.pdata$$OEMParallelPortGetByte|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMParallelPortGetByte| } ; comdat associative
|$T38206| DCD	|$L38205|
	DCD	0x40008d02

  00000			 AREA	 |.rdata| { |??_C@_0CM@EHKFDPED@OEMParallelPortGetByte?3?5status?5t@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CM@EHKFDPED@OEMParallelPortGetByte?3?5status?5t@| DCB "OEMParalle"
	DCB	"lPortGetByte: status timeout 2.", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CM@FEFJD@OEMParallelPortGetByte?3?5status?5t@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CM@FEFJD@OEMParallelPortGetByte?3?5status?5t@| DCB "OEMParallelPo"
	DCB	"rtGetByte: status timeout 1.", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ods

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

  00000		 |OEMParallelPortGetByte| PROC

; 113  : {

  00000		 |$L38205|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004	e24dd00c	 sub         sp, sp, #0xC
  00008		 |$M38203|

; 114  :     //DWORD           dwStatus;                     // parallel port status
; 115  :     unsigned int    iWatchdog;                      // timeout counter
; 116  :     int             iByteReturned;
; 117  : 
; 118  :     //
; 119  :     // if ppfs disconnected do nothing
; 120  :     //
; 121  :     if (NoPPFS)

  00008	e59f3218	 ldr         r3, [pc, #0x218]
  0000c	e5933000	 ldr         r3, [r3]
  00010	e3530000	 cmp         r3, #0
  00014	0a000002	 beq         |$L38064|

; 122  :         return -1;

  00018	e3e03000	 mvn         r3, #0
  0001c	e58d3008	 str         r3, [sp, #8]
  00020	ea00007b	 b           |$L38061|
  00024		 |$L38064|

; 123  :     
; 124  :     //
; 125  :     // Clear busy.
; 126  :     //
; 127  :     *IDE_CTRL =  PAR_NREAD| PAR_NWRITE ;

  00024	e3a03102	 mov         r3, #2, 2
  00028	e383280a	 orr         r2, r3, #0xA, 16
  0002c	e3a03060	 mov         r3, #0x60
  00030	e5823000	 str         r3, [r2]
  00034		 |$L38198|
  00034		 |$L38197|
  00034		 |$L38196|
  00034		 |$L38067|

; 128  :     
; 129  :      //
; 130  :     // Wait for the strobe to go low.
; 131  :     //
; 132  :     while(1)
; 133  :     {    
; 134  :         for(iWatchdog = 0 ; ; iWatchdog++)

  00034	e3a03000	 mov         r3, #0
  00038	e58d3000	 str         r3, [sp]
  0003c	ea000002	 b           |$L38069|
  00040		 |$L38070|
  00040	e59d3000	 ldr         r3, [sp]
  00044	e2833001	 add         r3, r3, #1
  00048	e58d3000	 str         r3, [sp]
  0004c		 |$L38069|

; 135  :         {
; 136  :             if(!( *IDE_CTRL & PAR_STROBE))

  0004c	e3a03102	 mov         r3, #2, 2
  00050	e383380a	 orr         r3, r3, #0xA, 16
  00054	e5933000	 ldr         r3, [r3]
  00058	e3130c02	 tst         r3, #2, 24
  0005c	1a000000	 bne         |$L38073|

; 137  :             {
; 138  :                 break; 

  00060	ea00000f	 b           |$L38071|
  00064		 |$L38073|

; 139  :             }
; 140  : 
; 141  :             //
; 142  :             // Check to see if the watchdog has timed out
; 143  :             if (iWatchdog==PARALLEL_WAIT)                    

  00064	e59d3000	 ldr         r3, [sp]
  00068	e3530401	 cmp         r3, #1, 8
  0006c	1a00000b	 bne         |$L38074|

; 144  :             {                                    
; 145  :                 //
; 146  :                 // Display error message
; 147  :                 //
; 148  :                 EdbgOutputDebugString("OEMParallelPortGetByte: status timeout 1.\r\n");

  00070	e59f01b8	 ldr         r0, [pc, #0x1B8]
  00074	eb000000	 bl          EdbgOutputDebugString

; 149  : 
; 150  :                 //
; 151  :                 // set parallel port to disconnected and return failure   
; 152  :                 //
; 153  :                 NoPPFS=TRUE;                    

  00078	e59f21a8	 ldr         r2, [pc, #0x1A8]
  0007c	e3a03001	 mov         r3, #1
  00080	e5823000	 str         r3, [r2]

; 154  : 
; 155  :                 *IDE_CTRL  = PAR_NWRITE| PAR_NREAD;

  00084	e3a03102	 mov         r3, #2, 2
  00088	e383280a	 orr         r2, r3, #0xA, 16
  0008c	e3a03060	 mov         r3, #0x60
  00090	e5823000	 str         r3, [r2]

; 156  :                 return -1;                      

  00094	e3e03000	 mvn         r3, #0
  00098	e58d3008	 str         r3, [sp, #8]
  0009c	ea00005c	 b           |$L38061|
  000a0		 |$L38074|

; 157  :             }
; 158  :         }

  000a0	eaffffe6	 b           |$L38070|
  000a4		 |$L38071|

; 159  :         
; 160  :         //
; 161  :         // Read strobe a four more times to make sure that it is low.
; 162  :         //
; 163  :         if(( *IDE_CTRL & PAR_STROBE))

  000a4	e3a03102	 mov         r3, #2, 2
  000a8	e383380a	 orr         r3, r3, #0xA, 16
  000ac	e5933000	 ldr         r3, [r3]
  000b0	e3130c02	 tst         r3, #2, 24
  000b4	0a000000	 beq         |$L38078|

; 164  :         {
; 165  :             continue; 

  000b8	eaffffdd	 b           |$L38067|
  000bc		 |$L38078|

; 166  :         }
; 167  :         if(( *IDE_CTRL & PAR_STROBE))

  000bc	e3a03102	 mov         r3, #2, 2
  000c0	e383380a	 orr         r3, r3, #0xA, 16
  000c4	e5933000	 ldr         r3, [r3]
  000c8	e3130c02	 tst         r3, #2, 24
  000cc	0a000000	 beq         |$L38080|

; 168  :         {
; 169  :             continue; 

  000d0	eaffffd7	 b           |$L38196|
  000d4		 |$L38080|

; 170  :         }
; 171  :         if(( *IDE_CTRL & PAR_STROBE))

  000d4	e3a03102	 mov         r3, #2, 2
  000d8	e383380a	 orr         r3, r3, #0xA, 16
  000dc	e5933000	 ldr         r3, [r3]
  000e0	e3130c02	 tst         r3, #2, 24
  000e4	0a000000	 beq         |$L38082|

; 172  :         {
; 173  :             continue; 

⌨️ 快捷键说明

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