📄 xllp_pcf506.cod
字号:
0007c e1d040b4 ldrh r4, [r0, #4]
00080 e1d0e0b0 ldrh lr, [r0]
00084 e59f0050 ldr r0, [pc, #0x50]
00088 e1c540b0 strh r4, [r5]
0008c e1c6e0b0 strh lr, [r6]
00090 eb000000 bl NKDbgPrintfW
; 239 : return;
00094 ea00000c b |$L35227|
00098 |$L35233|
; 240 : }
; 241 : *x=data[1]<<2;
; 242 : *x |= data[2] & 0x0003;
; 243 :
; 244 : *y=data[3]<<2;
00098 e5dd100b ldrb r1, [sp, #0xB]
0009c e5dd0009 ldrb r0, [sp, #9]
; 245 : *y |= (data[2] & 0x000c)>>2;
000a0 e203e00c and lr, r3, #0xC
000a4 e2032003 and r2, r3, #3
000a8 e1a03101 mov r3, r1, lsl #2
000ac e1822100 orr r2, r2, r0, lsl #2
000b0 e183112e orr r1, r3, lr, lsr #2
000b4 e1c520b0 strh r2, [r5]
; 246 : //if(IsMutex)
; 247 : //ReleasePcf506Mutex();
; 248 : LastX = *x;
000b8 e59f2018 ldr r2, [pc, #0x18]
000bc e1c610b0 strh r1, [r6]
000c0 e1d530b0 ldrh r3, [r5]
; 249 : LastY = *y;
000c4 e1c210b0 strh r1, [r2]
000c8 e1c230b4 strh r3, [r2, #4]
000cc |$L35227|
; 250 : }
000cc e28dd00c add sp, sp, #0xC
000d0 e8bd41f0 ldmia sp!, {r4 - r8, lr}
000d4 e12fff1e bx lr
000d8 |$L35604|
000d8 00000000 DCD |?LastY@?1??Pcf506TchGetXY@@9@9|
000dc 00000000 DCD |??_C@_1EC@GLICLDLF@?$AAg?$AAe?$AAt?$AAx?$AAy?$AA?$CB?$AA?$CB?$AA?$CB?$AA?$CB?$AAr?$AAe?$AAt?$AAu?$AAr?$AAn?$AA?5?$AAi?$AAn?$AAt?$AA?5@|
000e0 |$M35600|
ENDP ; |Pcf506TchGetXY|
EXPORT |Pcf506TchPenStatus|
00000 AREA |.text| { |Pcf506TchPenStatus| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Pcf506TchPenStatus|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506TchPenStatus| } ; comdat associative
|$T35613| DCD |$L35612|
DCD 0x40001c02
; Function compile flags: /Ogsy
00000 AREA |.text| { |Pcf506TchPenStatus| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Pcf506TchPenStatus| PROC
; 256 : {
00000 |$L35612|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M35610|
00008 e1a04000 mov r4, r0
; 257 : unsigned char data[2];
; 258 : //BOOL IsMutex=FALSE;
; 259 : //IsMutex=WaitPcf506Mutex();
; 260 : data[0]=0x2e; //adcc1 reg address
; 261 : XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 0); //write reg address
0000c e5941004 ldr r1, [r4, #4]
00010 e5940010 ldr r0, [r4, #0x10]
00014 e3a0e02e mov lr, #0x2E
00018 e3a05000 mov r5, #0
0001c e3a06001 mov r6, #1
00020 e28d3008 add r3, sp, #8
00024 e3a02008 mov r2, #8
00028 e5cde008 strb lr, [sp, #8]
0002c e58d5004 str r5, [sp, #4]
00030 e58d6000 str r6, [sp]
00034 eb000000 bl XllpPI2CWrite
; 262 : XllpPI2CRead(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 1); //read data from the reg address
00038 e5941004 ldr r1, [r4, #4]
0003c e5940010 ldr r0, [r4, #0x10]
00040 e28d3008 add r3, sp, #8
00044 e3a02008 mov r2, #8
00048 e58d6004 str r6, [sp, #4]
0004c e58d6000 str r6, [sp]
00050 eb000000 bl XllpPI2CRead
; 263 : //if(IsMutex)
; 264 : // ReleasePcf506Mutex();
; 265 : if((0x80 & data[0]))
00054 e5dd3008 ldrb r3, [sp, #8]
00058 e3130080 tst r3, #0x80
; 266 : return 1;
0005c 13a00001 movne r0, #1
; 267 : else
; 268 : return 0;
00060 03a00000 moveq r0, #0
; 269 : }
00064 e28dd00c add sp, sp, #0xC
00068 e8bd4070 ldmia sp!, {r4 - r6, lr}
0006c e12fff1e bx lr
00070 |$M35611|
ENDP ; |Pcf506TchPenStatus|
EXPORT |Pcf506IsADCCompleted|
00000 AREA |.text| { |Pcf506IsADCCompleted| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Pcf506IsADCCompleted|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506IsADCCompleted| } ; comdat associative
|$T35623| DCD |$L35622|
DCD 0x40001c02
; Function compile flags: /Ogsy
00000 AREA |.text| { |Pcf506IsADCCompleted| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Pcf506IsADCCompleted| PROC
; 275 : {
00000 |$L35622|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M35620|
00008 e1a04000 mov r4, r0
; 276 : unsigned char data[2];
; 277 : //BOOL IsMutex=FALSE;
; 278 : //IsMutex=WaitPcf506Mutex();
; 279 : data[0]=0x31; //adcc1 reg address
; 280 : XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 0); //write reg address
0000c e5941004 ldr r1, [r4, #4]
00010 e5940010 ldr r0, [r4, #0x10]
00014 e3a0e031 mov lr, #0x31
00018 e3a05000 mov r5, #0
0001c e3a06001 mov r6, #1
00020 e28d3008 add r3, sp, #8
00024 e3a02008 mov r2, #8
00028 e5cde008 strb lr, [sp, #8]
0002c e58d5004 str r5, [sp, #4]
00030 e58d6000 str r6, [sp]
00034 eb000000 bl XllpPI2CWrite
; 281 : XllpPI2CRead(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 1); //read data from the reg address
00038 e5941004 ldr r1, [r4, #4]
0003c e5940010 ldr r0, [r4, #0x10]
00040 e28d3008 add r3, sp, #8
00044 e3a02008 mov r2, #8
00048 e58d6004 str r6, [sp, #4]
0004c e58d6000 str r6, [sp]
00050 eb000000 bl XllpPI2CRead
; 282 : //if(IsMutex)
; 283 : // ReleasePcf506Mutex();
; 284 : if(0x80 & data[0])
00054 e5dd3008 ldrb r3, [sp, #8]
00058 e3130080 tst r3, #0x80
; 285 : return 1;
0005c 13a00001 movne r0, #1
; 286 : else
; 287 : return 0;
00060 03a00000 moveq r0, #0
; 288 : }
00064 e28dd00c add sp, sp, #0xC
00068 e8bd4070 ldmia sp!, {r4 - r6, lr}
0006c e12fff1e bx lr
00070 |$M35621|
ENDP ; |Pcf506IsADCCompleted|
EXPORT |Pcf506TchReadBatvolt|
00000 AREA |.text| { |Pcf506TchReadBatvolt| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Pcf506TchReadBatvolt|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506TchReadBatvolt| } ; comdat associative
|$T35631| DCD |$L35630|
DCD 0x40001202
; Function compile flags: /Ogsy
00000 AREA |.text| { |Pcf506TchReadBatvolt| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Pcf506TchReadBatvolt| PROC
; 304 : {
00000 |$L35630|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M35628|
; 305 : //set batvolt read
; 306 : unsigned char data[2];
; 307 : //BOOL IsMutex=FALSE;
; 308 : //IsMutex=WaitPcf506Mutex();
; 309 : data[0]=0x2f;
; 310 : data[1]=0x00; //no start
; 311 : XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 2, 1);
00008 e5901004 ldr r1, [r0, #4]
0000c e5900010 ldr r0, [r0, #0x10]
00010 e3a0e02f mov lr, #0x2F
00014 e3a04000 mov r4, #0
00018 e3a05001 mov r5, #1
0001c e3a06002 mov r6, #2
00020 e28d3008 add r3, sp, #8
00024 e3a02008 mov r2, #8
00028 e5cde008 strb lr, [sp, #8]
0002c e5cd4009 strb r4, [sp, #9]
00030 e58d5004 str r5, [sp, #4]
00034 e58d6000 str r6, [sp]
00038 eb000000 bl XllpPI2CWrite
; 312 : //if(IsMutex)
; 313 : // ReleasePcf506Mutex();
; 314 :
; 315 : return;
; 316 : }
0003c e28dd00c add sp, sp, #0xC
00040 e8bd4070 ldmia sp!, {r4 - r6, lr}
00044 e12fff1e bx lr
00048 |$M35629|
ENDP ; |Pcf506TchReadBatvolt|
EXPORT |Pcf506GetIntIndex|
00000 AREA |.text| { |Pcf506GetIntIndex| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Pcf506GetIntIndex|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506GetIntIndex| } ; comdat associative
|$T35641| DCD |$L35640|
DCD 0x40001e02
; Function compile flags: /Ogsy
00000 AREA |.text| { |Pcf506GetIntIndex| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Pcf506GetIntIndex| PROC
; 320 : {
00000 |$L35640|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M35638|
00008 e1a04000 mov r4, r0
; 321 : unsigned char data[3];
; 322 : UINT32 reval=0;
; 323 : //BOOL IsMutex=FALSE;
; 324 : //IsMutex=WaitPcf506Mutex();
; 325 : data[0]=0x02; //INT reg address
; 326 : XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 0); //write reg address
0000c e5941004 ldr r1, [r4, #4]
00010 e5940010 ldr r0, [r4, #0x10]
00014 e3a0e002 mov lr, #2
00018 e3a05000 mov r5, #0
0001c e3a06001 mov r6, #1
00020 e28d3008 add r3, sp, #8
00024 e3a02008 mov r2, #8
00028 e5cde008 strb lr, [sp, #8]
0002c e58d5004 str r5, [sp, #4]
00030 e58d6000 str r6, [sp]
00034 eb000000 bl XllpPI2CWrite
; 327 : XllpPI2CRead(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 3, 1); //read data from the reg address
00038 e5941004 ldr r1, [r4, #4]
0003c e5940010 ldr r0, [r4, #0x10]
00040 e3a0e003 mov lr, #3
00044 e28d3008 add r3, sp, #8
00048 e3a02008 mov r2, #8
0004c e58de000 str lr, [sp]
00050 e58d6004 str r6, [sp, #4]
00054 eb000000 bl XllpPI2CRead
; 328 : reval = data[2];
; 329 : reval = reval<<8 | data[1];
; 330 : reval = reval<<8 | data[0];
; 331 : //if(IsMutex)
; 332 : // ReleasePcf506Mutex();
; 333 : return reval;
00058 e5dd100a ldrb r1, [sp, #0xA]
0005c e5dd3009 ldrb r3, [sp, #9]
00060 e5dd2008 ldrb r2, [sp, #8]
00064 e1833401 orr r3, r3, r1, lsl #8
00068 e1820403 orr r0, r2, r3, lsl #8
; 334 : }
0006c e28dd00c add sp, sp, #0xC
00070 e8bd4070 ldmia sp!, {r4 - r6, lr}
00074 e12fff1e bx lr
00078 |$M35639|
ENDP ; |Pcf506GetIntIndex|
EXPORT |Pcf506GetIntMask|
00000 AREA |.text| { |Pcf506GetIntMask| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Pcf506GetIntMask|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506GetIntMask| } ; comdat associative
|$T35651| DCD |$L35650|
DCD 0x40001e02
; Function compile flags: /Ogsy
00000 AREA |.text| { |Pcf506GetIntMask| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Pcf506GetIntMask| PROC
; 337 : {
00000 |$L35650|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M35648|
00008 e1a04000 mov r4, r0
; 338 : unsigned char data[3];
; 339 : UINT32 reval=0;
; 340 : //BOOL IsMutex=FALSE;
; 341 : //IsMutex=WaitPcf506Mutex();
; 342 : data[0]=0x05; //INT reg address
; 343 : XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 0); //write reg address
0000c e5941004 ldr r1, [r4, #4]
00010 e5940010 ldr r0, [r4, #0x10]
00014 e3a0e005 mov lr, #5
00018 e3a05000 mov r5, #0
0001c e3a06001 mov r6, #1
00020 e28d3008 add r3, sp, #8
00024 e3a02008 mov r2, #8
00028 e5cde008 strb lr, [sp, #8]
0002c e58d5004 str r5, [sp, #4]
00030 e58d6000 str r6, [sp]
00034 eb000000 bl XllpPI2CWrite
; 344 : XllpPI2CRead(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 3, 1); //read data from the reg address
00038 e5941004 ldr r1, [r4, #4]
0003c e5940010 ldr r0, [r4, #0x10]
00040 e3a0e003 mov lr, #3
00044 e28d3008 add r3, sp, #8
00048 e3a02008 mov r2, #8
0004c e58de000 str lr, [sp]
00050 e58d6004 str r6, [sp, #4]
00054 eb000000 bl XllpPI2CRead
; 345 : reval = data[2];
; 346 : reval = reval<<8 | data[1];
; 347 : reval = reval<<8 | data[0];
; 348 : //if(IsMutex)
; 349 : // ReleasePcf506Mutex();
; 350 : return reval;
00058 e5dd100a ldrb r1, [sp, #0xA]
0005c e5dd3009 ldrb r3, [sp, #9]
00060 e5dd2008 ldrb r2, [sp, #8]
00064 e1833401 orr r3, r3, r1, lsl #8
00068 e1820403 orr r0, r2, r3, lsl #8
; 351 : }
0006c e28dd00c add sp, sp, #0xC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -