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

📄 diskmain.cod

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

	TTL	D:\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 d:\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
|$T33428| DCD	|$L33427|
	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		 |$L33427|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33425|

; 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		 |$L33430|
  00044	51eb851f	 DCD         0x51eb851f
  00048		 |$M33426|

			 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
|$T33438| DCD	|$L33437|
	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		 |$L33437|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33435|

; 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		 |$L33440|
  00014	b6b000c0	 DCD         0xb6b000c0
  00018		 |$M33436|

			 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
|$T33448| DCD	|$L33447|
	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		 |$L33447|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33445|

; 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		 |$L33450|
  00014	b6a000e0	 DCD         0xb6a000e0
  00018		 |$M33446|

			 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
|$T33458| DCD	|$L33457|
	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		 |$L33457|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33455|

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

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

	EXPORT	|?SelectDevice@CDisk@@QAAXXZ|		; CDisk::SelectDevice
	IMPORT	|WRITE_PORT_UCHAR|

  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
|$T33468| DCD	|$L33467|
	DCD	0x40000b01
; 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		 |$L33467|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33465|

; 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	e59f0018	 ldr         r0, [pc, #0x18]
  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++) 
; 404  : 	{
; 405  : 		msWait(500);
; 406  : 
; 407  : 		//RETAILMSG(1,(TEXT("msWait---------\r\n")));
; 408  : 		
; 409  : 		if(!IdeIsBusy())		
; 410  : 			break;
; 411  : 	}
; 412  : 	if ( i>=10 )
; 413  : 		{
; 414  : 		   RETAILMSG(1,(TEXT("WriteCommand failed\r\n")));
; 415  : 		} 
; 416  : 		*/
; 417  : 		
; 418  : 	//RETAILMSG(1,(TEXT("----------------liudiping-------Test\r\n")));
; 419  :         //return ;
; 420  :     }

  00020	e49de004	 ldr         lr, [sp], #4
  00024	e12fff1e	 bx          lr
  00028		 |$L33470|
  00028	b6a000c0	 DCD         0xb6a000c0
  0002c		 |$M33466|

			 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
|$T33477| DCD	|$L33476|
	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

; 424  : 	inline void WriteDriveController(BYTE bData) {

  00000		 |$L33476|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33474|

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

; 426  :     }

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

			 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
|$T33485| DCD	|$L33484|
	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

; 430  : 	inline void WriteAltDriveController(BYTE bData) {

  00000		 |$L33484|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33482|

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

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

; 432  :     }

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

			 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
|$T33494| DCD	|$L33493|
	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

; 436  : 	inline void SetDriveHead(BYTE bDriveHead) {

  00000		 |$L33493|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33491|

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

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

; 438  :     }

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

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

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

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

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

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

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

; 441  :       inline void WriteCommand(BYTE bCommand) {

  00000		 |$L33502|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33500|

; 442  :       int i ;
; 443  : 	  //RETAILMSG(1,(TEXT("WriteCommand -----\r\n")));
; 444  :       ATA_WRITE_BYTE( (volatile PBYTE)m_pATAReg + m_dwCommandStatusOffset, bCommand);

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

; 445  : 	  /*
; 446  :       for(i=0; i<10; i++) 
; 447  : 	{
; 448  : 		//msWait(200);
; 449  : 
; 450  : 		//msWait(1);
; 451  : 
; 452  : 		//RETAILMSG(1,(TEXT("msWait---------\r\n")));

⌨️ 快捷键说明

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