📄 mutexi2c.cod
字号:
; 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 + -