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

📄 diskmain.cod

📁 PXA270的BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091 

	TTL	C:\WINCE500\PLATFORM\bvdmain\drivers\atapi\.\diskmain.cpp
	CODE32

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


  00000			 AREA	 |.bss|, NOINIT
|g_hTestUnitReadyThread| % 0x4
	EXPORT	|?StallExecution@CDisk@@QAAXK@Z|	; CDisk::StallExecution
	IMPORT	|StallExecution|
	IMPORT	|Sleep|
; File c:\wince500\platform\bvdmain\drivers\atapi\diskmain.h

  00000			 AREA	 |.text| { |?StallExecution@CDisk@@QAAXK@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?StallExecution@CDisk@@QAAXK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?StallExecution@CDisk@@QAAXK@Z| } ; comdat associative
|$T33443| DCD	|$L33442|
	DCD	0x40001201
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?StallExecution@CDisk@@QAAXK@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?StallExecution@CDisk@@QAAXK@Z| PROC	; CDisk::StallExecution

; 350  :     {

  00000		 |$L33442|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33440|

; 351  :         if ((dwTime >= 100) && (m_dwDeviceFlags & DFLAGS_DEVICE_CDROM)) 

  00004	e3510064	 cmp         r1, #0x64
  00008	3a000008	 bcc         |$L32464|
  0000c	e5903004	 ldr         r3, [r0, #4]
  00010	e3130301	 tst         r3, #1, 6
  00014	0a000005	 beq         |$L32464|

; 352  :             Sleep (dwTime / 100);

  00018	e59f3024	 ldr         r3, [pc, #0x24]
  0001c	e0803391	 umull       r3, r0, r1, r3
  00020	e1a002a0	 mov         r0, r0, lsr #5
  00024	eb000000	 bl          Sleep

; 355  :     }    

  00028	e49de004	 ldr         lr, [sp], #4
  0002c	e12fff1e	 bx          lr
  00030		 |$L32464|

; 353  :         else 
; 354  :             ::StallExecution(dwTime*10);         

  00030	e0810101	 add         r0, r1, r1, lsl #2
  00034	e1a00080	 mov         r0, r0, lsl #1
  00038	eb000000	 bl          StallExecution

; 355  :     }    

  0003c	e49de004	 ldr         lr, [sp], #4
  00040	e12fff1e	 bx          lr
  00044		 |$L33445|
  00044	51eb851f	 DCD         0x51eb851f
  00048		 |$M33441|

			 ENDP  ; |?StallExecution@CDisk@@QAAXK@Z|, CDisk::StallExecution

	EXPORT	|?GetAltStatus@CDisk@@QAAEXZ|		; CDisk::GetAltStatus
	IMPORT	|READ_PORT_UCHAR|

  00000			 AREA	 |.text| { |?GetAltStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?GetAltStatus@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetAltStatus@CDisk@@QAAEXZ| } ; comdat associative
|$T33453| DCD	|$L33452|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GetAltStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?GetAltStatus@CDisk@@QAAEXZ| PROC	; CDisk::GetAltStatus

; 371  :      {

  00000		 |$L33452|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33450|

; 372  :      //RETAILMSG(1,(TEXT("GetAltStatus:111111------\r\n")));
; 373  :         return (BYTE) ATA_READ_BYTE((volatile PBYTE)m_pATARegAlt + m_dwAltStatusOffset);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          READ_PORT_UCHAR

; 374  :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33455|
  00014	b6b000c0	 DCD         0xb6b000c0
  00018		 |$M33451|

			 ENDP  ; |?GetAltStatus@CDisk@@QAAEXZ|, CDisk::GetAltStatus

	EXPORT	|?GetBaseStatus@CDisk@@QAAEXZ|		; CDisk::GetBaseStatus

  00000			 AREA	 |.text| { |?GetBaseStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?GetBaseStatus@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetBaseStatus@CDisk@@QAAEXZ| } ; comdat associative
|$T33463| DCD	|$L33462|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GetBaseStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?GetBaseStatus@CDisk@@QAAEXZ| PROC	; CDisk::GetBaseStatus

; 379  :     	{

  00000		 |$L33462|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33460|

; 380  :     	   BYTE bStatus = ATA_READ_BYTE((volatile PBYTE)m_pATAReg + m_dwCommandStatusOffset);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          READ_PORT_UCHAR

; 381  : 		return bStatus;
; 382  :     	}

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33465|
  00014	b6a000e0	 DCD         0xb6a000e0
  00018		 |$M33461|

			 ENDP  ; |?GetBaseStatus@CDisk@@QAAEXZ|, CDisk::GetBaseStatus

	EXPORT	|?GetError@CDisk@@QAAEXZ|		; CDisk::GetError

  00000			 AREA	 |.text| { |?GetError@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?GetError@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetError@CDisk@@QAAEXZ| } ; comdat associative
|$T33473| DCD	|$L33472|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GetError@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?GetError@CDisk@@QAAEXZ| PROC		; CDisk::GetError

; 386  : 	  inline BYTE GetError() {

  00000		 |$L33472|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33470|

; 387  :         return (BYTE) ATA_READ_BYTE( (volatile PBYTE) m_pATAReg + m_dwFeatureErrorOffset);

  00004	e3a00183	 mov         r0, #0x83, 2
  00008	e2400696	 sub         r0, r0, #0x96, 12
  0000c	eb000000	 bl          READ_PORT_UCHAR

; 388  :     }

  00010	e49de004	 ldr         lr, [sp], #4
  00014	e12fff1e	 bx          lr
  00018		 |$M33471|

			 ENDP  ; |?GetError@CDisk@@QAAEXZ|, CDisk::GetError

	EXPORT	|?SelectDevice@CDisk@@QAAXXZ|		; CDisk::SelectDevice
	EXPORT	|??_C@_1CM@IOJCIMKI@?$AAW?$AAr?$AAi?$AAt?$AAe?$AAC?$AAo?$AAm?$AAm?$AAa?$AAn?$AAd?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AN@| [ DATA ] ; `string'
	IMPORT	|WRITE_PORT_UCHAR|
	IMPORT	|NKDbgPrintfW|
	IMPORT	|msWait|

  00000			 AREA	 |.text| { |?SelectDevice@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?SelectDevice@CDisk@@QAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?SelectDevice@CDisk@@QAAXXZ| } ; comdat associative
|$T33490| DCD	|$L33489|
	DCD	0x40001a01

  00000			 AREA	 |.rdata| { |??_C@_1CM@IOJCIMKI@?$AAW?$AAr?$AAi?$AAt?$AAe?$AAC?$AAo?$AAm?$AAm?$AAa?$AAn?$AAd?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CM@IOJCIMKI@?$AAW?$AAr?$AAi?$AAt?$AAe?$AAC?$AAo?$AAm?$AAm?$AAa?$AAn?$AAd?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AN@| DCB "W"
	DCB	0x0, "r", 0x0, "i", 0x0, "t", 0x0, "e", 0x0, "C", 0x0, "o"
	DCB	0x0, "m", 0x0, "m", 0x0, "a", 0x0, "n", 0x0, "d", 0x0, " "
	DCB	0x0, "f", 0x0, "a", 0x0, "i", 0x0, "l", 0x0, "e", 0x0, "d"
	DCB	0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0	; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?SelectDevice@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?SelectDevice@CDisk@@QAAXXZ| PROC	; CDisk::SelectDevice

; 399  :     inline void SelectDevice() {

  00000		 |$L33489|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M33487|

; 400  :     int i ;
; 401  :        ATA_WRITE_BYTE((volatile PBYTE)m_pATAReg+m_dwDrvHeadOffset, (m_dwDevice == 0 ) ? ATA_HEAD_DRIVE_1 : ATA_HEAD_DRIVE_2);

  00004	e590364c	 ldr         r3, [r0, #0x64C]
  00008	e59f0054	 ldr         r0, [pc, #0x54]
  0000c	e3530000	 cmp         r3, #0
  00010	03a030a0	 moveq       r3, #0xA0
  00014	13a030b0	 movne       r3, #0xB0
  00018	e20310ff	 and         r1, r3, #0xFF
  0001c	eb000000	 bl          WRITE_PORT_UCHAR

; 402  : 	
; 403  : 	  for(i=0; i<10; i++) 

  00020	e59f5038	 ldr         r5, [pc, #0x38]
  00024	e3a04000	 mov         r4, #0
  00028		 |$L32496|

; 404  : 	{
; 405  : 		//msWait(500);
; 406  : 		msWait(10);

  00028	e3a0000a	 mov         r0, #0xA
  0002c	eb000000	 bl          msWait

; 407  : 
; 408  : 		//RETAILMSG(1,(TEXT("msWait---------\r\n")));
; 409  : 		
; 410  : 		if(!IdeIsBusy())		

  00030	e1d530b0	 ldrh        r3, [r5]
  00034	e3130080	 tst         r3, #0x80
  00038	0a000002	 beq         |$L33482|
  0003c	e2844001	 add         r4, r4, #1
  00040	e354000a	 cmp         r4, #0xA
  00044	bafffff7	 blt         |$L32496|
  00048		 |$L33482|

; 411  : 			break;
; 412  : 	}
; 413  : 	if ( i>=10 )

  00048	e354000a	 cmp         r4, #0xA

; 414  : 		{
; 415  : 		   RETAILMSG(1,(TEXT("WriteCommand failed\r\n")));

  0004c	a59f0008	 ldrge       r0, [pc, #8]
  00050	ab000000	 blge        NKDbgPrintfW

; 416  : 		} 
; 417  : 		
; 418  : 		
; 419  : 	//RETAILMSG(1,(TEXT("----------------liudiping-------Test\r\n")));
; 420  :         //return ;
; 421  :     }

  00054	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00058	e12fff1e	 bx          lr
  0005c		 |$L33492|
  0005c	00000000	 DCD         |??_C@_1CM@IOJCIMKI@?$AAW?$AAr?$AAi?$AAt?$AAe?$AAC?$AAo?$AAm?$AAm?$AAa?$AAn?$AAd?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AN@|
  00060	b6a000e0	 DCD         0xb6a000e0
  00064	b6a000c0	 DCD         0xb6a000c0
  00068		 |$M33488|

			 ENDP  ; |?SelectDevice@CDisk@@QAAXXZ|, CDisk::SelectDevice

	EXPORT	|?WriteDriveController@CDisk@@QAAXE@Z|	; CDisk::WriteDriveController

  00000			 AREA	 |.text| { |?WriteDriveController@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?WriteDriveController@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteDriveController@CDisk@@QAAXE@Z| } ; comdat associative
|$T33499| DCD	|$L33498|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?WriteDriveController@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?WriteDriveController@CDisk@@QAAXE@Z| PROC ; CDisk::WriteDriveController

; 425  : 	inline void WriteDriveController(BYTE bData) {

  00000		 |$L33498|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33496|

; 426  :         ATA_WRITE_BYTE( (volatile PBYTE) m_pATAReg + m_dwDataDrvCtrlOffset, bData);

  00004	e3a004b6	 mov         r0, #0xB6, 8
  00008	e380060a	 orr         r0, r0, #0xA, 12
  0000c	eb000000	 bl          WRITE_PORT_UCHAR

; 427  :     }

  00010	e49de004	 ldr         lr, [sp], #4
  00014	e12fff1e	 bx          lr
  00018		 |$M33497|

			 ENDP  ; |?WriteDriveController@CDisk@@QAAXE@Z|, CDisk::WriteDriveController

	EXPORT	|?WriteAltDriveController@CDisk@@QAAXE@Z| ; CDisk::WriteAltDriveController

  00000			 AREA	 |.text| { |?WriteAltDriveController@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?WriteAltDriveController@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteAltDriveController@CDisk@@QAAXE@Z| } ; comdat associative
|$T33507| DCD	|$L33506|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?WriteAltDriveController@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?WriteAltDriveController@CDisk@@QAAXE@Z| PROC ; CDisk::WriteAltDriveController

; 431  : 	inline void WriteAltDriveController(BYTE bData) {

  00000		 |$L33506|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33504|

; 432  :         ATA_WRITE_BYTE( (volatile PBYTE) m_pATARegAlt + m_dwAltDrvCtrl, bData);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          WRITE_PORT_UCHAR

; 433  :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33509|
  00014	b6b000c0	 DCD         0xb6b000c0
  00018		 |$M33505|

			 ENDP  ; |?WriteAltDriveController@CDisk@@QAAXE@Z|, CDisk::WriteAltDriveController

	EXPORT	|?SetDriveHead@CDisk@@QAAXE@Z|		; CDisk::SetDriveHead

  00000			 AREA	 |.text| { |?SetDriveHead@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?SetDriveHead@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?SetDriveHead@CDisk@@QAAXE@Z| } ; comdat associative
|$T33516| DCD	|$L33515|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?SetDriveHead@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?SetDriveHead@CDisk@@QAAXE@Z| PROC	; CDisk::SetDriveHead

; 437  : 	inline void SetDriveHead(BYTE bDriveHead) {

  00000		 |$L33515|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33513|

; 438  :         ATA_WRITE_BYTE( (volatile PBYTE) m_pATAReg + m_dwDrvHeadOffset, bDriveHead);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          WRITE_PORT_UCHAR

; 439  :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33518|
  00014	b6a000c0	 DCD         0xb6a000c0

⌨️ 快捷键说明

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