📄 mutexi2c.cod
字号:
EXPORT |??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1HK@KNGMKKBA@?$AA?5?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAW?$AAa?$AAi?$AAt?$AA?5?$AAA?$AAc?$AAk?$AA?5?$AAT?$AAi?$AAm@| [ DATA ] ; `string'
EXPORT |??_C@_1EO@JCJEEGPB@?$AA?5?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAG?$AAe?$AAt?$AA?5?$AAN?$AAA?$AAC?$AAK?$AA?5?$AAR?$AAe?$AAs@| [ DATA ] ; `string'
IMPORT |?IsNACKReceived@MES_I2C03@@QAAHXZ| ; MES_I2C03::IsNACKReceived
IMPORT |NKDbgPrintfW|
00000 AREA |.text| { |?WaitACK@MutexI2C@@IAAHEH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?WaitACK@MutexI2C@@IAAHEH@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WaitACK@MutexI2C@@IAAHEH@Z| } ; comdat associative
|$T36659| DCD |$L36658|
DCD 0x40003701
00000 AREA |.rdata| { |??_C@_1EO@JCJEEGPB@?$AA?5?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAG?$AAe?$AAt?$AA?5?$AAN?$AAA?$AAC?$AAK?$AA?5?$AAR?$AAe?$AAs@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EO@JCJEEGPB@?$AA?5?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAG?$AAe?$AAt?$AA?5?$AAN?$AAA?$AAC?$AAK?$AA?5?$AAR?$AAe?$AAs@| DCB " "
DCB 0x0, "E", 0x0, "r", 0x0, "r", 0x0, "o", 0x0, "r", 0x0, ":"
DCB 0x0, " ", 0x0, "G", 0x0, "e", 0x0, "t", 0x0, " ", 0x0, "N"
DCB 0x0, "A", 0x0, "C", 0x0, "K", 0x0, " ", 0x0, "R", 0x0, "e"
DCB 0x0, "s", 0x0, "p", 0x0, "o", 0x0, "n", 0x0, "s", 0x0, "e"
DCB 0x0, " ", 0x0, "t", 0x0, "o", 0x0, " ", 0x0, "(", 0x0, "%"
DCB 0x0, "0", 0x0, "2", 0x0, "X", 0x0, ")", 0x0, " ", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_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, READONLY, SELECTION=2 ; comdat any
|??_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@| DCB "c"
DCB 0x0, ":", 0x0, "\\", 0x0, "w", 0x0, "i", 0x0, "n", 0x0, "c"
DCB 0x0, "e", 0x0, "5", 0x0, "0", 0x0, "0", 0x0, "\\", 0x0, "p"
DCB 0x0, "l", 0x0, "a", 0x0, "t", 0x0, "f", 0x0, "o", 0x0, "r"
DCB 0x0, "m", 0x0, "\\", 0x0, "m", 0x0, "p", 0x0, "2", 0x0, "5"
DCB 0x0, "3", 0x0, "0", 0x0, "f", 0x0, "\\", 0x0, "s", 0x0, "r"
DCB 0x0, "c", 0x0, "\\", 0x0, "d", 0x0, "r", 0x0, "i", 0x0, "v"
DCB 0x0, "e", 0x0, "r", 0x0, "s", 0x0, "\\", 0x0, "c", 0x0, "s"
DCB 0x0, "p", 0x0, "\\", 0x0, "i", 0x0, "2", 0x0, "c", 0x0, "l"
DCB 0x0, "i", 0x0, "b", 0x0, "\\", 0x0, "m", 0x0, "u", 0x0, "t"
DCB 0x0, "e", 0x0, "x", 0x0, "i", 0x0, "2", 0x0, "c", 0x0, "."
DCB 0x0, "c", 0x0, "p", 0x0, "p", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@| DCB "E"
DCB 0x0, "R", 0x0, "R", 0x0, "O", 0x0, "R", 0x0, ":", 0x0, " "
DCB 0x0, "%", 0x0, "s", 0x0, " ", 0x0, "l", 0x0, "i", 0x0, "n"
DCB 0x0, "e", 0x0, " ", 0x0, "%", 0x0, "d", 0x0, ":", 0x0, " "
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1HK@KNGMKKBA@?$AA?5?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAW?$AAa?$AAi?$AAt?$AA?5?$AAA?$AAc?$AAk?$AA?5?$AAT?$AAi?$AAm@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1HK@KNGMKKBA@?$AA?5?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAW?$AAa?$AAi?$AAt?$AA?5?$AAA?$AAc?$AAk?$AA?5?$AAT?$AAi?$AAm@| DCB " "
DCB 0x0, "E", 0x0, "r", 0x0, "r", 0x0, "o", 0x0, "r", 0x0, ":"
DCB 0x0, " ", 0x0, "W", 0x0, "a", 0x0, "i", 0x0, "t", 0x0, " "
DCB 0x0, "A", 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "T", 0x0, "i"
DCB 0x0, "m", 0x0, "e", 0x0, "o", 0x0, "u", 0x0, "t", 0x0, " "
DCB 0x0, "f", 0x0, "o", 0x0, "r", 0x0, "(", 0x0, "%", 0x0, "0"
DCB 0x0, "2", 0x0, "X", 0x0, ")", 0x0, ",", 0x0, " ", 0x0, "C"
DCB 0x0, "h", 0x0, "e", 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "D"
DCB 0x0, "e", 0x0, "l", 0x0, "a", 0x0, "y", 0x0, " ", 0x0, "C"
DCB 0x0, "o", 0x0, "u", 0x0, "n", 0x0, "t", 0x0, "(", 0x0, "%"
DCB 0x0, "d", 0x0, ")", 0x0, " ", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |?WaitACK@MutexI2C@@IAAHEH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?WaitACK@MutexI2C@@IAAHEH@Z| PROC ; MutexI2C::WaitACK
; 180 : {
00000 |$L36658|
00000 e92d43f0 stmdb sp!, {r4 - r9, lr}
00004 |$M36656|
00004 e1a08002 mov r8, r2
00008 e1a07001 mov r7, r1
0000c e1a06000 mov r6, r0
; 181 : CBOOL result = CFALSE;
; 182 : CBOOL NACK = CTRUE;
; 183 :
; 184 : for(UINT cnt=0; cnt < 10000; cnt++)
00010 e3a09c27 mov r9, #0x27, 24
00014 e3899010 orr r9, r9, #0x10
00018 e3a05000 mov r5, #0
0001c |$L35791|
; 185 : {
; 186 : result = m_pi2c->GetInterruptPending();
0001c e5964010 ldr r4, [r6, #0x10]
00020 e5943014 ldr r3, [r4, #0x14]
00024 e2840014 add r0, r4, #0x14
00028 e5933018 ldr r3, [r3, #0x18]
0002c e1a0e00f mov lr, pc
00030 e12fff13 bx r3
00034 e1a04000 mov r4, r0
; 187 : if(result == CTRUE)
00038 e3540001 cmp r4, #1
0003c 0a000002 beq |$L36645|
00040 e2855002 add r5, r5, #2
00044 e1550009 cmp r5, r9
00048 3afffff3 bcc |$L35791|
0004c |$L36645|
; 188 : break;
; 189 : cnt++;
; 190 : }
; 191 : NACK = m_pi2c->IsNACKReceived();
0004c e5960010 ldr r0, [r6, #0x10]
00050 eb000000 bl |?IsNACKReceived@MES_I2C03@@QAAHXZ|
; 192 :
; 193 : if(result == CFALSE)
00054 e3540000 cmp r4, #0
00058 1a00000a bne |$L35795|
; 194 : {
; 195 : ERRORMSG(ZONE_ERROR,(TEXT(" Error: Wait Ack Timeout for(%02X), Check Delay Count(%d) \r\n"),
; 196 : Data, m_SCLnSDADiff));
0005c e59f1070 ldr r1, [pc, #0x70]
00060 e59f0068 ldr r0, [pc, #0x68]
00064 e3a020c4 mov r2, #0xC4
00068 eb000000 bl NKDbgPrintfW
0006c e5962054 ldr r2, [r6, #0x54]
00070 e59f0060 ldr r0, [pc, #0x60]
00074 e1a01007 mov r1, r7
00078 eb000000 bl NKDbgPrintfW
; 203 : return FALSE;
0007c e3a00000 mov r0, #0
; 206 : }
00080 e8bd43f0 ldmia sp!, {r4 - r9, lr}
00084 e12fff1e bx lr
00088 |$L35795|
; 197 : return FALSE;
; 198 : }
; 199 :
; 200 : if(NACK == CTRUE && ACK == TRUE)
00088 e3500001 cmp r0, #1
0008c 1a00000b bne |$L35797|
00090 e3580001 cmp r8, #1
00094 1a000009 bne |$L35797|
; 201 : {
; 202 : ERRORMSG(ZONE_ERROR,(TEXT(" Error: Get NACK Response to (%02X) \r\n"), Data));
00098 e59f1034 ldr r1, [pc, #0x34]
0009c e59f002c ldr r0, [pc, #0x2C]
000a0 e3a020ca mov r2, #0xCA
000a4 eb000000 bl NKDbgPrintfW
000a8 e59f001c ldr r0, [pc, #0x1C]
000ac e1a01007 mov r1, r7
000b0 eb000000 bl NKDbgPrintfW
; 203 : return FALSE;
000b4 e3a00000 mov r0, #0
; 206 : }
000b8 e8bd43f0 ldmia sp!, {r4 - r9, lr}
000bc e12fff1e bx lr
000c0 |$L35797|
; 204 : }
; 205 : return TRUE;
000c0 e3a00001 mov r0, #1
; 206 : }
000c4 e8bd43f0 ldmia sp!, {r4 - r9, lr}
000c8 e12fff1e bx lr
000cc |$L36661|
000cc 00000000 DCD |??_C@_1EO@JCJEEGPB@?$AA?5?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAG?$AAe?$AAt?$AA?5?$AAN?$AAA?$AAC?$AAK?$AA?5?$AAR?$AAe?$AAs@|
000d0 00000000 DCD |??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@|
000d4 00000000 DCD |??_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@|
000d8 00000000 DCD |??_C@_1HK@KNGMKKBA@?$AA?5?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAW?$AAa?$AAi?$AAt?$AA?5?$AAA?$AAc?$AAk?$AA?5?$AAT?$AAi?$AAm@|
000dc |$M36657|
ENDP ; |?WaitACK@MutexI2C@@IAAHEH@Z|, MutexI2C::WaitACK
EXPORT |?I2CWrite@MutexI2C@@IAAHPAEH@Z| ; MutexI2C::I2CWrite
EXPORT |??_C@_1FC@JPHGIFGK@?$AA?5?$AAM?$AAu?$AAt?$AAe?$AAx?$AAI?$AA2?$AAC?$AA?3?$AA?5?$AAT?$AAi?$AAm?$AAe?$AAO?$AAu?$AAt?$AA?5?$AAW@| [ DATA ] ; `string'
EXPORT |??_C@_1EM@OLMHANLJ@?$AA?5?$AAM?$AAu?$AAt?$AAe?$AAx?$AAI?$AA2?$AAC?$AA?3?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAW?$AAa?$AAi?$AAt@| [ DATA ] ; `string'
IMPORT |?SetAckGenerationEnable@MES_I2C03@@QAAXH@Z| ; MES_I2C03::SetAckGenerationEnable
IMPORT |?ClearOperationHold@MES_I2C03@@QAAXXZ| ; MES_I2C03::ClearOperationHold
IMPORT |?Set_ICSR@MES_I2C03@@QAAXW4TXRXMODE@1@HH@Z| ; MES_I2C03::Set_ICSR
IMPORT |?IsBusy@MES_I2C03@@QAAHXZ| ; MES_I2C03::IsBusy
IMPORT |Sleep|
IMPORT |?WriteByte@MES_I2C03@@QAAXE@Z| ; MES_I2C03::WriteByte
IMPORT |ReleaseMutex|
IMPORT |WaitForSingleObject|
IMPORT |?SetClockPClkMode@MES_IClockControl@@QAAXW4PCLKMODE@1@@Z| ; MES_IClockControl::SetClockPClkMode
00000 AREA |.text| { |?I2CWrite@MutexI2C@@IAAHPAEH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?I2CWrite@MutexI2C@@IAAHPAEH@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?I2CWrite@MutexI2C@@IAAHPAEH@Z| } ; comdat associative
|$T36689| DCD |$L36688|
DCD 0x40008701
00000 AREA |.rdata| { |??_C@_1EM@OLMHANLJ@?$AA?5?$AAM?$AAu?$AAt?$AAe?$AAx?$AAI?$AA2?$AAC?$AA?3?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAW?$AAa?$AAi?$AAt@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EM@OLMHANLJ@?$AA?5?$AAM?$AAu?$AAt?$AAe?$AAx?$AAI?$AA2?$AAC?$AA?3?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAW?$AAa?$AAi?$AAt@| DCB " "
DCB 0x0, "M", 0x0, "u", 0x0, "t", 0x0, "e", 0x0, "x", 0x0, "I"
DCB 0x0, "2", 0x0, "C", 0x0, ":", 0x0, " ", 0x0, "F", 0x0, "a"
DCB 0x0, "i", 0x0, "l", 0x0, " ", 0x0, "W", 0x0, "a", 0x0, "i"
DCB 0x0, "t", 0x0, "F", 0x0, "o", 0x0, "r", 0x0, "S", 0x0, "i"
DCB 0x0, "n", 0x0, "g", 0x0, "l", 0x0, "e", 0x0, "O", 0x0, "b"
DCB 0x0, "j", 0x0, "e", 0x0, "c", 0x0, "t", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1FC@JPHGIFGK@?$AA?5?$AAM?$AAu?$AAt?$AAe?$AAx?$AAI?$AA2?$AAC?$AA?3?$AA?5?$AAT?$AAi?$AAm?$AAe?$AAO?$AAu?$AAt?$AA?5?$AAW@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FC@JPHGIFGK@?$AA?5?$AAM?$AAu?$AAt?$AAe?$AAx?$AAI?$AA2?$AAC?$AA?3?$AA?5?$AAT?$AAi?$AAm?$AAe?$AAO?$AAu?$AAt?$AA?5?$AAW@| DCB " "
DCB 0x0, "M", 0x0, "u", 0x0, "t", 0x0, "e", 0x0, "x", 0x0, "I"
DCB 0x0, "2", 0x0, "C", 0x0, ":", 0x0, " ", 0x0, "T", 0x0, "i"
DCB 0x0, "m", 0x0, "e", 0x0, "O", 0x0, "u", 0x0, "t", 0x0, " "
DCB 0x0, "W", 0x0, "a", 0x0, "i", 0x0, "t", 0x0, "F", 0x0, "o"
DCB 0x0, "r", 0x0, "S", 0x0, "i", 0x0, "n", 0x0, "g", 0x0, "l"
DCB 0x0, "e", 0x0, "O", 0x0, "b", 0x0, "j", 0x0, "e", 0x0, "c"
DCB 0x0, "t", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |?I2CWrite@MutexI2C@@IAAHPAEH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?I2CWrite@MutexI2C@@IAAHPAEH@Z| PROC ; MutexI2C::I2CWrite
; 211 : {
00000 |$L36688|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M36686|
00004 e1a06002 mov r6, r2
00008 e1a07001 mov r7, r1
0000c e1a04000 mov r4, r0
; 212 : DWORD result = WaitForSingleObject(m_hMutex, m_nMutexWaitTime);
00010 e594100c ldr r1, [r4, #0xC]
00014 e5940000 ldr r0, [r4]
00018 eb000000 bl WaitForSingleObject
0001c e3500000 cmp r0, #0
; 213 :
; 214 : if (result == WAIT_OBJECT_0)
00020 1a000062 bne |$L35805|
; 215 : {
; 216 : DEBUGMSG(ZONE_I2CDEV,(TEXT(" %s I2CWrite(ID:%x, DATA:0x%x, Len:%d)\r\n"), m_szMutexName, m_dwID, *Data, Len));
; 217 :
; 218 : m_pi2c->SetClockPClkMode(MES_IClockControl::PCLKMODE_ALWAYS); // CLKENB: Enable
00024 e5943010 ldr r3, [r4, #0x10]
00028 e3a01001 mov r1, #1
0002c e2830008 add r0, r3, #8
00030 eb000000 bl |?SetClockPClkMode@MES_IClockControl@@QAAXW4PCLKMODE@1@@Z|
; 219 : Sleep(1);
00034 e3a00001 mov r0, #1
00038 eb000000 bl Sleep
; 220 :
; 221 : U8 ID = m_dwID;
; 222 : I2CSetup();
0003c e5d45008 ldrb r5, [r4, #8]
00040 e1a00004 mov r0, r4
00044 eb000000 bl |?I2CSetup@MutexI2C@@IAAXXZ|
00048 |$L35809|
; 223 :
; 224 : // BUSY check & STOP condition
; 225 : while(CTRUE == m_pi2c->IsBusy());
00048 e5940010 ldr r0, [r4, #0x10]
0004c eb000000 bl |?IsBusy@MES_I2C03@@QAAHXZ|
00050 e3500001 cmp r0, #1
00054 0afffffb beq |$L35809|
; 226 :
; 227 : m_pi2c->Set_ICSR(MES_I2C03::TXRXMODE_MASTER_TX, CTRUE, CFALSE); // ISSR: ST_ENB, MASTER_TX, TX_ENB, ST_BUSY(STOP)
00058 e5940010 ldr r0, [r4, #0x10]
0005c e3a03000 mov r3, #0
00060 e3a02001 mov r2, #1
00064 e3a01003 mov r1, #3
00068 eb000000 bl |?Set_ICSR@MES_I2C03@@QAAXW4TXRXMODE@1@HH@Z|
; 228 :
; 229 : // START condition & ID transmit
; 230 : m_pi2c->SetAckGenerationEnable(CFALSE); // ICCR: ACK_GEN-Not ACK, last Data
0006c e5940010 ldr r0, [r4, #0x10]
00070 e3a01000 mov r1, #0
00074 eb000000 bl |?SetAckGenerationEnable@MES_I2C03@@QAAXH@Z|
; 231 : m_pi2c->WriteByte(ID); // IDSR: WRITE_ID address
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -