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

📄 basei2s.cod

📁 CS4245 Wince驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00000		 |?I2C_Read@BASEI2S@@AAAHEPAE@Z| PROC	; BASEI2S::I2C_Read

; 127  : {

  00000		 |$L37238|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004	e24dd004	 sub         sp, sp, #4
  00008		 |$M37236|
  00008	e1a05002	 mov         r5, r2
  0000c	e1a03001	 mov         r3, r1
  00010	e1a04000	 mov         r4, r0

; 128  : 	U8 buf = (U8)SubAddr;
; 129  : 		
; 130  : 	if( ! m_pi2c->Write(&buf, 1) )

  00014	e5940010	 ldr         r0, [r4, #0x10]
  00018	e3a02001	 mov         r2, #1
  0001c	e28d1000	 add         r1, sp, #0
  00020	e5cd3000	 strb        r3, [sp]
  00024	eb000000	 bl          |?Write@MutexI2C@@QAAHPAEH@Z|
  00028	e3500000	 cmp         r0, #0
  0002c	1a000001	 bne         |$L36221|
  00030		 |$L37235|

; 131  : 		return CFALSE;

  00030	e3a00000	 mov         r0, #0
  00034	ea000006	 b           |$L36223|
  00038		 |$L36221|

; 132  : 
; 133  : 	if( ! m_pi2c->Read (Data, 1) )

  00038	e5940010	 ldr         r0, [r4, #0x10]
  0003c	e3a02001	 mov         r2, #1
  00040	e1a01005	 mov         r1, r5
  00044	eb000000	 bl          |?Read@MutexI2C@@QAAHPAEH@Z|
  00048	e3500000	 cmp         r0, #0

; 134  : 		return CFALSE;

  0004c	0afffff7	 beq         |$L37235|

; 135  : 	else
; 136  : 		return CTRUE;	

  00050	e3a00001	 mov         r0, #1
  00054		 |$L36223|

; 137  : }

  00054	e28dd004	 add         sp, sp, #4
  00058	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  0005c	e12fff1e	 bx          lr
  00060		 |$M37237|

			 ENDP  ; |?I2C_Read@BASEI2S@@AAAHEPAE@Z|, BASEI2S::I2C_Read

	EXPORT	|?CodecWriteRegister@BASEI2S@@IAAHEE@Z|	; BASEI2S::CodecWriteRegister
	IMPORT	|EnterCriticalSection|
	IMPORT	|LeaveCriticalSection|

  00000			 AREA	 |.text| { |?CodecWriteRegister@BASEI2S@@IAAHEE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?CodecWriteRegister@BASEI2S@@IAAHEE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?CodecWriteRegister@BASEI2S@@IAAHEE@Z| } ; comdat associative
|$T37252| DCD	|$L37251|
	DCD	0x40001001
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?CodecWriteRegister@BASEI2S@@IAAHEE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?CodecWriteRegister@BASEI2S@@IAAHEE@Z| PROC ; BASEI2S::CodecWriteRegister

; 151  : {

  00000		 |$L37251|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004		 |$M37249|
  00004	e1a04002	 mov         r4, r2
  00008	e1a05001	 mov         r5, r1
  0000c	e1a06000	 mov         r6, r0

; 152  : 	BOOL rtVal;
; 153  : 	EnterCriticalSection( &m_csMutex );

  00010	e286006c	 add         r0, r6, #0x6C
  00014	eb000000	 bl          EnterCriticalSection

; 154  : 
; 155  : 	//rtVal = m_audio.WriteI2SCodecReg( I2SRegisterAddress, DataToWrite ,RW_TIMEOUT);
; 156  : 
; 157  : 	rtVal = I2C_Write((U8)I2SRegisterAddress, DataToWrite);

  00018	e1a02004	 mov         r2, r4
  0001c	e1a01005	 mov         r1, r5
  00020	e1a00006	 mov         r0, r6
  00024	eb000000	 bl          |?I2C_Write@BASEI2S@@AAAHEE@Z|
  00028	e1a04000	 mov         r4, r0

; 158  : 
; 159  : //	RETAILMSG(1, (TEXT("CodecWriteRegister: rtVal = %d ,Address : 0x%x , DataToWrite = 0x%x\r\n"),rtVal,I2SRegisterAddress,DataToWrite));
; 160  : 
; 161  : 	LeaveCriticalSection( &m_csMutex );

  0002c	e286006c	 add         r0, r6, #0x6C
  00030	eb000000	 bl          LeaveCriticalSection

; 162  : 
; 163  : 	return rtVal;

  00034	e1a00004	 mov         r0, r4

; 164  : }

  00038	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  0003c	e12fff1e	 bx          lr
  00040		 |$M37250|

			 ENDP  ; |?CodecWriteRegister@BASEI2S@@IAAHEE@Z|, BASEI2S::CodecWriteRegister

	EXPORT	|?MapRegisters@BASEI2S@@IAAHXZ|		; BASEI2S::MapRegisters

  00000			 AREA	 |.text| { |?MapRegisters@BASEI2S@@IAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?MapRegisters@BASEI2S@@IAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?MapRegisters@BASEI2S@@IAAHXZ| } ; comdat associative
|$T37263| DCD	|$L37262|
	DCD	0x40002a01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?MapRegisters@BASEI2S@@IAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?MapRegisters@BASEI2S@@IAAHXZ| PROC	; BASEI2S::MapRegisters

; 191  : {

  00000		 |$L37262|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M37260|
  00004	e1a04000	 mov         r4, r0

; 192  : 	U32	OffsetAddr, AlignAddr;
; 193  : 
; 194  : 	// DMA registers.
; 195  : 	//
; 196  : 	AlignAddr	= PHY_BASEADDR_DMA & 0xfffff000;
; 197  : 	OffsetAddr	= PHY_BASEADDR_DMA & 0x00000fff;
; 198  : 
; 199  : 	m_pDMAregs = (DWORD*)VirtualAlloc(0, 0x800, MEM_RESERVE, PAGE_NOACCESS);

  00008	e3a03001	 mov         r3, #1
  0000c	e3a02a02	 mov         r2, #2, 20
  00010	e3a01b02	 mov         r1, #2, 22
  00014	e3a00000	 mov         r0, #0
  00018	eb000000	 bl          VirtualAlloc
  0001c	e3500000	 cmp         r0, #0
  00020	e584001c	 str         r0, [r4, #0x1C]

; 200  : 	if (!m_pDMAregs)
; 201  : 	{
; 202  : 		DEBUGMSG(1, (TEXT("m_pDMAregs: VirtualAlloc failed!\r\n")));
; 203  : 		return(FALSE);

  00024	0a000016	 beq         |$L37259|

; 204  : 	}
; 205  : 	if (!VirtualCopy((PVOID)m_pDMAregs, (PVOID)(AlignAddr >> 8),
; 206  : 			0x800, PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE))

  00028	e3a03c06	 mov         r3, #6, 24
  0002c	e3833004	 orr         r3, r3, #4
  00030	e3a02b02	 mov         r2, #2, 22
  00034	e3a01503	 mov         r1, #3, 10
  00038	eb000000	 bl          VirtualCopy
  0003c	e3500000	 cmp         r0, #0

; 207  : 	{
; 208  : 		DEBUGMSG(1, (TEXT("m_pDMAregs: VirtualCopy failed!\r\n")));
; 209  : 		return(FALSE);

  00040	e3a00000	 mov         r0, #0
  00044	0a000015	 beq         |$L36233|

; 210  : 	}
; 211  : 	m_pDMAregs = (DWORD*)((U32)m_pDMAregs + OffsetAddr);
; 212  : 
; 213  : 
; 214  : 	// Audio registers.
; 215  : 	//
; 216  : 	AlignAddr	= PHY_BASEADDR_AUDIO & 0xfffff000;
; 217  : 	OffsetAddr	= PHY_BASEADDR_AUDIO & 0x00000fff;
; 218  : 
; 219  : 	m_pAUDIOregs = (DWORD*)VirtualAlloc(0, 0x1000, MEM_RESERVE, PAGE_NOACCESS);

  00048	e3a03001	 mov         r3, #1
  0004c	e3a02a02	 mov         r2, #2, 20
  00050	e3a01a01	 mov         r1, #1, 20
  00054	eb000000	 bl          VirtualAlloc
  00058	e3500000	 cmp         r0, #0
  0005c	e5840018	 str         r0, [r4, #0x18]

; 220  : 	if (!m_pAUDIOregs)
; 221  : 	{
; 222  : 		DEBUGMSG(1, (TEXT("m_pAUDIOCregs: VirtualAlloc failed!\r\n")));
; 223  : 		return(FALSE);

  00060	0a000007	 beq         |$L37259|

; 224  : 	}
; 225  : 	if (!VirtualCopy((PVOID)m_pAUDIOregs, (PVOID)(AlignAddr >> 8),
; 226  : 			0x1000, PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE))

  00064	e3a01503	 mov         r1, #3, 10
  00068	e3a03c06	 mov         r3, #6, 24
  0006c	e38110d0	 orr         r1, r1, #0xD0
  00070	e3833004	 orr         r3, r3, #4
  00074	e3a02a01	 mov         r2, #1, 20
  00078	eb000000	 bl          VirtualCopy
  0007c	e3500000	 cmp         r0, #0
  00080	1a000002	 bne         |$L36250|
  00084		 |$L37259|

; 227  : 	{
; 228  : 		DEBUGMSG(1, (TEXT("m_pAUDIOCregs: VirtualCopy failed!\r\n")));
; 229  : 		return(FALSE);

  00084	e3a00000	 mov         r0, #0

; 234  : }

  00088	e8bd4010	 ldmia       sp!, {r4, lr}
  0008c	e12fff1e	 bx          lr
  00090		 |$L36250|

; 230  : 	}
; 231  : 	m_pAUDIOregs = (DWORD*)((U32)m_pAUDIOregs + OffsetAddr);

  00090	e5943018	 ldr         r3, [r4, #0x18]

; 232  : 
; 233  : 	return(TRUE);

  00094	e3a00001	 mov         r0, #1
  00098	e2833b02	 add         r3, r3, #2, 22
  0009c	e5843018	 str         r3, [r4, #0x18]
  000a0		 |$L36233|

; 234  : }

  000a0	e8bd4010	 ldmia       sp!, {r4, lr}
  000a4	e12fff1e	 bx          lr
  000a8		 |$M37261|

			 ENDP  ; |?MapRegisters@BASEI2S@@IAAHXZ|, BASEI2S::MapRegisters

	EXPORT	|?UnmapRegisters@BASEI2S@@IAAHXZ|	; BASEI2S::UnmapRegisters

  00000			 AREA	 |.text| { |?UnmapRegisters@BASEI2S@@IAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?UnmapRegisters@BASEI2S@@IAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?UnmapRegisters@BASEI2S@@IAAHXZ| } ; comdat associative
|$T37272| DCD	|$L37271|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?UnmapRegisters@BASEI2S@@IAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?UnmapRegisters@BASEI2S@@IAAHXZ| PROC	; BASEI2S::UnmapRegisters

; 249  : {

  00000		 |$L37271|
  00000		 |$M37269|

; 250  : //	VirtualFree(m_pAUDIOregs);
; 251  : //	VirtualFree(m_pDMAregs);
; 252  : 
; 253  : 	return TRUE;

  00000	e3a00001	 mov         r0, #1

; 254  : 
; 255  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M37270|

			 ENDP  ; |?UnmapRegisters@BASEI2S@@IAAHXZ|, BASEI2S::UnmapRegisters

	EXPORT	|?InitInterruptThread@BASEI2S@@IAAHXZ|	; BASEI2S::InitInterruptThread

  00000			 AREA	 |.text| { |?InitInterruptThread@BASEI2S@@IAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?InitInterruptThread@BASEI2S@@IAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?InitInterruptThread@BASEI2S@@IAAHXZ| } ; comdat associative
|$T37281| DCD	|$L37280|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?InitInterruptThread@BASEI2S@@IAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?InitInterruptThread@BASEI2S@@IAAHXZ| PROC ; BASEI2S::InitInterruptThread

; 262  : {

  00000		 |$L37280|
  00000		 |$M37278|

; 263  : 	return TRUE;

  00000	e3a00001	 mov         r0, #1

; 264  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M37279|

			 ENDP  ; |?InitInterruptThread@BASEI2S@@IAAHXZ|, BASEI2S::InitInterruptThread

	EXPORT	|?Open@BASEI2S@@QAAHXZ|			; BASEI2S::Open
	EXPORT	|??_C@_1DC@MEKBLJDN@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAB?$AAA?$AAS?$AAE?$AAI?$AA2?$AAS?$AA?3?$AA?3?$AAo?$AAp@| [ DATA ] ; `string'
	EXPORT	|??_C@_1GA@PIKEJFKP@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAM?$AAF?$AAP?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAR?$AAe@| [ DATA ] ; `string'
	EXPORT	|??_C@_1GG@BNDIIIOO@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAM?$AAF?$AAP?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAR?$AAe@| [ DATA ] ; `string'
	EXPORT	|??_C@_1GE@GMDDECGJ@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAM?$AAF?$AAP?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAR?$AAe@| [ DATA ] ; `string'
	IMPORT	|?SetPCMOUTDataWidth@MES_AUDIO03@@QAAXW4DATAWIDTH@1@@Z| ; MES_AUDIO03::SetPCMOUTDataWidth
	IMPORT	|?SetSPDIFOUTDataWidth@MES_AUDIO03@@QAAXW4DATAWIDTH@1@@Z| ; MES_AUDIO03::SetSPDIFOUTDataWidth
	IMPORT	|?SetPCMINDataWidth@MES_AUDIO03@@QAAXW4DATAWIDTH@1@@Z| ; MES_AUDIO03::SetPCMINDataWidth
	IMPORT	|??2@YAPAXI@Z|				; operator new
	IMPORT	|Sleep|
	IMPORT	|??0MutexI2C@@QAA@EIW4I2CDEV@0@@Z|	; MutexI2C::MutexI2C
	IMPORT	|?Init@MutexI2C@@QAAXW4TXCLKSRC@MES_I2C03@@KH@Z| ; MutexI2C::Init
	IMPORT	|NKDbgPrintfW|
	IMPORT	|InitializeCriticalSection|
	IMPORT	|?SetClockPClkMode@MES_IClockControl@@QAAXW4PCLKMODE@1@@Z| ; MES_IClockControl::SetClockPClkMode
	IMPORT	|?SetClockBClkMode@MES_IClockControl@@QAAXW4BCLKMODE@1@@Z| ; MES_IClockControl::SetClockBClkMode
	IMPORT	|?SetClockDivisorEnable@MES_IClockControl@@QAAXH@Z| ; MES_IClockControl::SetClockDivisorEnable
	IMPORT	|?SetClockDivisor@MES_IClockControl@@QAAXKK@Z| ; MES_IClockControl::SetClockDivisor
	IMPORT	|?SetClockSource@MES_IClockControl@@QAAXKK@Z| ; MES_IClockControl::SetClockSource
	IMPORT	|?SetClockOutInv@MES_IClockControl@@QAAXKH@Z| ; MES_IClockControl::SetClockOutInv
	IMPORT	|?SetClockOutEnb@MES_IClockControl@@QAAXKH@Z| ; MES_IClockControl::SetClockOutEnb
	IMPORT	|?SetAC97ControllerReset@MES_AUDIO03@@QAAXH@Z| ; MES_AUDIO03::SetAC97ControllerReset
	IMPORT	|?SetAC97ColdReset@MES_AUDIO03@@QAAXH@Z| ; MES_AUDIO03::SetAC97ColdReset
	IMPORT	|?SetAC97LinkOn@MES_AUDIO03@@QAAXH@Z|	; MES_AUDIO03::SetAC97LinkOn
	IMPORT	|?SetI2SLinkOn@MES_AUDIO03@@QAAXH@Z|	; MES_AUDIO03::SetI2SLinkOn
	IMPORT	|?SetI2SControllerReset@MES_AUDIO03@@QAAXH@Z| ; MES_AUDIO03::SetI2SControllerReset
	IMPORT	|?SetI2SControllerMode@MES_AUDIO03@@QAAXW4MODE@1@@Z| ; MES_AUDIO03::SetI2SControllerMode
	IMPORT	|?SetSyncPeriod@MES_AUDIO03@@QAAXW4SYNCPERIOD@1@@Z| ; MES_AUDIO03::SetSyncPeriod

  00000			 AREA	 |.text| { |?Open@BASEI2S@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?Open@BASEI2S@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?Open@BASEI2S@@QAAHXZ| } ; comdat associative
|$T37304| DCD	|$L37303|

⌨️ 快捷键说明

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