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

📄 mutexi2c.cod

📁 Windows—ce-I2C驱动程序
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237 

	TTL	C:\WINCE500\PLATFORM\MP2530F\SRC\DRIVERS\CSP\I2CLIB\.\mutexi2c.cpp
	CODE32

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

	EXPORT	|?OEM_MUTEX_NAME_I2C0@@3PBGB| [ DATA ]	; OEM_MUTEX_NAME_I2C0
	EXPORT	|??_C@_1CG@EAHKEHNN@?$AAM?$AAP?$AA2?$AA5?$AA3?$AA0?$AAF?$AA_?$AAM?$AAu?$AAt?$AAe?$AAx?$AA_?$AAI?$AA2?$AAC?$AA0?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|?OEM_MUTEX_NAME_I2C1@@3PBGB| [ DATA ]	; OEM_MUTEX_NAME_I2C1
	EXPORT	|??_C@_1CG@PIMGCALI@?$AAM?$AAP?$AA2?$AA5?$AA3?$AA0?$AAF?$AA_?$AAM?$AAu?$AAt?$AAe?$AAx?$AA_?$AAI?$AA2?$AAC?$AA1?$AA?$AA@| [ DATA ] ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CG@PIMGCALI@?$AAM?$AAP?$AA2?$AA5?$AA3?$AA0?$AAF?$AA_?$AAM?$AAu?$AAt?$AAe?$AAx?$AA_?$AAI?$AA2?$AAC?$AA1?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CG@PIMGCALI@?$AAM?$AAP?$AA2?$AA5?$AA3?$AA0?$AAF?$AA_?$AAM?$AAu?$AAt?$AAe?$AAx?$AA_?$AAI?$AA2?$AAC?$AA1?$AA?$AA@| DCB "M"
	DCB	0x0, "P", 0x0, "2", 0x0, "5", 0x0, "3", 0x0, "0", 0x0, "F"
	DCB	0x0, "_", 0x0, "M", 0x0, "u", 0x0, "t", 0x0, "e", 0x0, "x"
	DCB	0x0, "_", 0x0, "I", 0x0, "2", 0x0, "C", 0x0, "1", 0x0, 0x0
	DCB	0x0					; `string'

  00000			 AREA	 |.data|, DATA
|?OEM_MUTEX_NAME_I2C1@@3PBGB| DCD |??_C@_1CG@PIMGCALI@?$AAM?$AAP?$AA2?$AA5?$AA3?$AA0?$AAF?$AA_?$AAM?$AAu?$AAt?$AAe?$AAx?$AA_?$AAI?$AA2?$AAC?$AA1?$AA?$AA@| ; OEM_MUTEX_NAME_I2C1
|?OEM_MUTEX_NAME_I2C0@@3PBGB| DCD |??_C@_1CG@EAHKEHNN@?$AAM?$AAP?$AA2?$AA5?$AA3?$AA0?$AAF?$AA_?$AAM?$AAu?$AAt?$AAe?$AAx?$AA_?$AAI?$AA2?$AAC?$AA0?$AA?$AA@| ; OEM_MUTEX_NAME_I2C0

  00000			 AREA	 |.rdata| { |??_C@_1CG@EAHKEHNN@?$AAM?$AAP?$AA2?$AA5?$AA3?$AA0?$AAF?$AA_?$AAM?$AAu?$AAt?$AAe?$AAx?$AA_?$AAI?$AA2?$AAC?$AA0?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CG@EAHKEHNN@?$AAM?$AAP?$AA2?$AA5?$AA3?$AA0?$AAF?$AA_?$AAM?$AAu?$AAt?$AAe?$AAx?$AA_?$AAI?$AA2?$AAC?$AA0?$AA?$AA@| DCB "M"
	DCB	0x0, "P", 0x0, "2", 0x0, "5", 0x0, "3", 0x0, "0", 0x0, "F"
	DCB	0x0, "_", 0x0, "M", 0x0, "u", 0x0, "t", 0x0, "e", 0x0, "x"
	DCB	0x0, "_", 0x0, "I", 0x0, "2", 0x0, "C", 0x0, "0", 0x0, 0x0
	DCB	0x0					; `string'
	EXPORT	|??0MES_IClockControl@@QAA@XZ|		; MES_IClockControl::MES_IClockControl
	EXPORT	|??_7MES_IClockControl@@6B@| [ DATA ]	; MES_IClockControl::`vftable'
	IMPORT	|_purecall|
; File c:\wince500\platform\mp2530f\src\prototype\mes_base\mes_iclockcontrol.h

  00000			 AREA	 |.text| { |??0MES_IClockControl@@QAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$??0MES_IClockControl@@QAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??0MES_IClockControl@@QAA@XZ| } ; comdat associative
|$T36582| DCD	|$L36581|
	DCD	0x40000600

  00000			 AREA	 |.rdata| { |??_7MES_IClockControl@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7MES_IClockControl@@6B@| DCD |_purecall|		; MES_IClockControl::`vftable'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??0MES_IClockControl@@QAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |??0MES_IClockControl@@QAA@XZ| PROC	; MES_IClockControl::MES_IClockControl

; 118  : 	MES_IClockControl( void ) : m_pClockControlRegister(CNULL) {}

  00000		 |$L36581|
  00000		 |$M36579|
  00000	e59f300c	 ldr         r3, [pc, #0xC]
  00004	e3a02000	 mov         r2, #0
  00008	e5802004	 str         r2, [r0, #4]
  0000c	e5803000	 str         r3, [r0]
  00010	e12fff1e	 bx          lr
  00014		 |$L36584|
  00014	00000000	 DCD         |??_7MES_IClockControl@@6B@|
  00018		 |$M36580|

			 ENDP  ; |??0MES_IClockControl@@QAA@XZ|, MES_IClockControl::MES_IClockControl

	EXPORT	|??1?$MES_BasicModuleWithClock@UMES_I2C03_RegisterSet@@$0A@$0BAA@@@UAA@XZ| ; MES_BasicModuleWithClock<MES_I2C03_RegisterSet,0,256>::~MES_BasicModuleWithClock<MES_I2C03_RegisterSet,0,256>
	IMPORT	|??1MES_IModule@@UAA@XZ|		; MES_IModule::~MES_IModule

  00000			 AREA	 |.text| { |??1?$MES_BasicModuleWithClock@UMES_I2C03_RegisterSet@@$0A@$0BAA@@@UAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$??1?$MES_BasicModuleWithClock@UMES_I2C03_RegisterSet@@$0A@$0BAA@@@UAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??1?$MES_BasicModuleWithClock@UMES_I2C03_RegisterSet@@$0A@$0BAA@@@UAA@XZ| } ; comdat associative
|$T36591| DCD	|$L36590|
	DCD	0x40000401
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??1?$MES_BasicModuleWithClock@UMES_I2C03_RegisterSet@@$0A@$0BAA@@@UAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |??1?$MES_BasicModuleWithClock@UMES_I2C03_RegisterSet@@$0A@$0BAA@@@UAA@XZ| PROC ; MES_BasicModuleWithClock<MES_I2C03_RegisterSet,0,256>::~MES_BasicModuleWithClock<MES_I2C03_RegisterSet,0,256>
  00000		 |$L36590|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M36588|
  00004	eb000000	 bl          |??1MES_IModule@@UAA@XZ|
  00008	e49de004	 ldr         lr, [sp], #4
  0000c	e12fff1e	 bx          lr
  00010		 |$M36589|

			 ENDP  ; |??1?$MES_BasicModuleWithClock@UMES_I2C03_RegisterSet@@$0A@$0BAA@@@UAA@XZ|, MES_BasicModuleWithClock<MES_I2C03_RegisterSet,0,256>::~MES_BasicModuleWithClock<MES_I2C03_RegisterSet,0,256>

	EXPORT	|??0MES_IDMAable@@QAA@XZ|		; MES_IDMAable::MES_IDMAable
	EXPORT	|??_7MES_IDMAable@@6B@| [ DATA ]	; MES_IDMAable::`vftable'

  00000			 AREA	 |.text| { |??0MES_IDMAable@@QAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$??0MES_IDMAable@@QAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??0MES_IDMAable@@QAA@XZ| } ; comdat associative
|$T36601| DCD	|$L36600|
	DCD	0x40000500

  00000			 AREA	 |.rdata| { |??_7MES_IDMAable@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7MES_IDMAable@@6B@| DCD |_purecall|			; MES_IDMAable::`vftable'
	DCD	|_purecall|
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??0MES_IDMAable@@QAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |??0MES_IDMAable@@QAA@XZ| PROC		; MES_IDMAable::MES_IDMAable
  00000		 |$L36600|
  00000		 |$M36598|
  00000	e1a02000	 mov         r2, r0
  00004	e59f3004	 ldr         r3, [pc, #4]
  00008	e5823000	 str         r3, [r2]
  0000c	e12fff1e	 bx          lr
  00010		 |$L36603|
  00010	00000000	 DCD         |??_7MES_IDMAable@@6B@|
  00014		 |$M36599|

			 ENDP  ; |??0MES_IDMAable@@QAA@XZ|, MES_IDMAable::MES_IDMAable

	EXPORT	|??0MES_IInterruptable@@QAA@XZ|		; MES_IInterruptable::MES_IInterruptable
	EXPORT	|??_7MES_IInterruptable@@6B@| [ DATA ]	; MES_IInterruptable::`vftable'

  00000			 AREA	 |.text| { |??0MES_IInterruptable@@QAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$??0MES_IInterruptable@@QAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??0MES_IInterruptable@@QAA@XZ| } ; comdat associative
|$T36612| DCD	|$L36611|
	DCD	0x40000500

  00000			 AREA	 |.rdata| { |??_7MES_IInterruptable@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7MES_IInterruptable@@6B@| DCD |_purecall|		; MES_IInterruptable::`vftable'
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??0MES_IInterruptable@@QAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |??0MES_IInterruptable@@QAA@XZ| PROC	; MES_IInterruptable::MES_IInterruptable
  00000		 |$L36611|
  00000		 |$M36609|
  00000	e1a02000	 mov         r2, r0
  00004	e59f3004	 ldr         r3, [pc, #4]
  00008	e5823000	 str         r3, [r2]
  0000c	e12fff1e	 bx          lr
  00010		 |$L36614|
  00010	00000000	 DCD         |??_7MES_IInterruptable@@6B@|
  00014		 |$M36610|

			 ENDP  ; |??0MES_IInterruptable@@QAA@XZ|, MES_IInterruptable::MES_IInterruptable

	EXPORT	|?Init@MutexI2C@@QAAXW4TXCLKSRC@MES_I2C03@@KH@Z| ; MutexI2C::Init
	IMPORT	|?SetTxClockSource@MES_I2C03@@QAAXW4TXCLKSRC@1@@Z| ; MES_I2C03::SetTxClockSource
	IMPORT	|?SetTxClockPrescaler@MES_I2C03@@QAAXK@Z| ; MES_I2C03::SetTxClockPrescaler
	IMPORT	|?SetDataDelay@MES_I2C03@@QAAXK@Z|	; MES_I2C03::SetDataDelay
; File c:\wince500\platform\mp2530f\src\drivers\csp\i2clib\mutexi2c.cpp

  00000			 AREA	 |.text| { |?Init@MutexI2C@@QAAXW4TXCLKSRC@MES_I2C03@@KH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?Init@MutexI2C@@QAAXW4TXCLKSRC@MES_I2C03@@KH@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Init@MutexI2C@@QAAXW4TXCLKSRC@MES_I2C03@@KH@Z| } ; comdat associative
|$T36626| DCD	|$L36625|
	DCD	0x40001a01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?Init@MutexI2C@@QAAXW4TXCLKSRC@MES_I2C03@@KH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?Init@MutexI2C@@QAAXW4TXCLKSRC@MES_I2C03@@KH@Z| PROC ; MutexI2C::Init

; 83   : {

  00000		 |$L36625|
  00000	e92d41f0	 stmdb       sp!, {r4 - r8, lr}
  00004		 |$M36623|
  00004	e1a06003	 mov         r6, r3
  00008	e1a07002	 mov         r7, r2
  0000c	e1a08001	 mov         r8, r1
  00010	e1a05000	 mov         r5, r0

; 84   : 	DEBUGMSG(ZONE_I2CDEV,(TEXT(" I2CInit: CLK SRC(%d), SCALE(%d), SDA Wait CLK(%d) against SCL\r\n"), ClkSrc, ClkScale, WaitSDA));
; 85   : 
; 86   : 	m_pi2c->OpenModule();

  00014	e5950010	 ldr         r0, [r5, #0x10]
  00018	e5904000	 ldr         r4, [r0]
  0001c	e594401c	 ldr         r4, [r4, #0x1C]
  00020	e1a0e00f	 mov         lr, pc
  00024	e12fff14	 bx          r4

; 87   : 	
; 88   : 	if(WaitSDA <= 0)	
; 89   : 		WaitSDA = 1;
; 90   : 		
; 91   : 	m_pi2c->SetTxClockSource	(ClkSrc);		// ICCR: SCL source- PCLK/256

  00028	e5950010	 ldr         r0, [r5, #0x10]
  0002c	e3560000	 cmp         r6, #0
  00030	e1a01008	 mov         r1, r8
  00034	d3a06001	 movle       r6, #1
  00038	eb000000	 bl          |?SetTxClockSource@MES_I2C03@@QAAXW4TXCLKSRC@1@@Z|

; 92   : 	m_pi2c->SetTxClockPrescaler (ClkScale);		// ICCR: SCL SCALER- 7 (390.625khz)	

  0003c	e5950010	 ldr         r0, [r5, #0x10]
  00040	e1a01007	 mov         r1, r7
  00044	eb000000	 bl          |?SetTxClockPrescaler@MES_I2C03@@QAAXK@Z|

; 93   : 	m_pi2c->SetDataDelay		(WaitSDA);	

  00048	e5950010	 ldr         r0, [r5, #0x10]
  0004c	e1a01006	 mov         r1, r6
  00050	eb000000	 bl          |?SetDataDelay@MES_I2C03@@QAAXK@Z|

; 94   : 	
; 95   : 	m_ClockSource = ClkSrc;

  00054	e585804c	 str         r8, [r5, #0x4C]

; 96   : 	m_ClockScale  = ClkScale;

  00058	e5857050	 str         r7, [r5, #0x50]

; 97   : 	m_SCLnSDADiff = WaitSDA;

  0005c	e5856054	 str         r6, [r5, #0x54]

; 98   : }

  00060	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  00064	e12fff1e	 bx          lr
  00068		 |$M36624|

			 ENDP  ; |?Init@MutexI2C@@QAAXW4TXCLKSRC@MES_I2C03@@KH@Z|, MutexI2C::Init

	EXPORT	|?I2CSetup@MutexI2C@@IAAXXZ|		; MutexI2C::I2CSetup

  00000			 AREA	 |.text| { |?I2CSetup@MutexI2C@@IAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?I2CSetup@MutexI2C@@IAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?I2CSetup@MutexI2C@@IAAXXZ| } ; comdat associative
|$T36636| DCD	|$L36635|
	DCD	0x40001901
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?I2CSetup@MutexI2C@@IAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?I2CSetup@MutexI2C@@IAAXXZ| PROC	; MutexI2C::I2CSetup

; 167  : {

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

; 168  : 	DEBUGMSG(ZONE_I2CDEV,(TEXT(" I2CSetup: CLK SRC(%d), SCALE(%d), SDA Wait CLK(%d) against SCL\r\n"),
; 169  : 				m_ClockSource, m_ClockScale, m_SCLnSDADiff));	
; 170  : 				
; 171  : 	m_pi2c->OpenModule();

  00008	e5940010	 ldr         r0, [r4, #0x10]
  0000c	e5903000	 ldr         r3, [r0]
  00010	e593301c	 ldr         r3, [r3, #0x1C]
  00014	e1a0e00f	 mov         lr, pc
  00018	e12fff13	 bx          r3

; 172  : 	m_pi2c->SetTxClockSource	(m_ClockSource);	// ICCR    : SCL Source

  0001c	e594104c	 ldr         r1, [r4, #0x4C]
  00020	e5940010	 ldr         r0, [r4, #0x10]
  00024	eb000000	 bl          |?SetTxClockSource@MES_I2C03@@QAAXW4TXCLKSRC@1@@Z|

; 173  : 	m_pi2c->SetTxClockPrescaler (m_ClockScale);		// ICCR    : SCL SCALER

  00028	e5941050	 ldr         r1, [r4, #0x50]
  0002c	e5940010	 ldr         r0, [r4, #0x10]
  00030	eb000000	 bl          |?SetTxClockPrescaler@MES_I2C03@@QAAXK@Z|

; 174  : 	m_pi2c->SetDataDelay		(m_SCLnSDADiff);	// QNT_MAX : SDA Delay Count

  00034	e5941054	 ldr         r1, [r4, #0x54]
  00038	e5940010	 ldr         r0, [r4, #0x10]
  0003c	eb000000	 bl          |?SetDataDelay@MES_I2C03@@QAAXK@Z|

; 175  : 	m_pi2c->SetInterruptEnable	(CTRUE);	

  00040	e5942010	 ldr         r2, [r4, #0x10]
  00044	e3a01001	 mov         r1, #1
  00048	e5923014	 ldr         r3, [r2, #0x14]
  0004c	e2820014	 add         r0, r2, #0x14
  00050	e5933000	 ldr         r3, [r3]
  00054	e1a0e00f	 mov         lr, pc
  00058	e12fff13	 bx          r3

; 176  : }

  0005c	e8bd4010	 ldmia       sp!, {r4, lr}
  00060	e12fff1e	 bx          lr
  00064		 |$M36634|

			 ENDP  ; |?I2CSetup@MutexI2C@@IAAXXZ|, MutexI2C::I2CSetup

	EXPORT	|?WaitACK@MutexI2C@@IAAHEH@Z|		; MutexI2C::WaitACK
	EXPORT	|??_C@_1IC@EEOMFCED@?$AAc?$AA?3?$AA?2?$AAw?$AAi?$AAn?$AAc?$AAe?$AA5?$AA0?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm@| [ DATA ] ; `string'

⌨️ 快捷键说明

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