📄 xllp_pcf506.cod
字号:
DCD 0x40002102
; Function compile flags: /Ogsy
00000 AREA |.text| { |Pcf50606DCDE| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Pcf50606DCDE| PROC
; 597 : {
00000 |$L35749|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M35747|
; 598 : unsigned char data[2];
; 599 : int m=0;
; 600 : unsigned char gateval=0x0;
; 601 : //BOOL IsMutex=FALSE;
; 602 : //IsMutex=WaitPcf506Mutex();
; 603 :
; 604 : //whether the volt is valide
; 605 : if(volt<900)
00008 e3520fe1 cmp r2, #0xE1, 30
; 606 : volt=900;
; 607 : if(volt>3300)
0000c e3a03ece mov r3, #0xCE, 28
00010 b3a02fe1 movlt r2, #0xE1, 30
00014 e3833004 orr r3, r3, #4
00018 e1520003 cmp r2, r3
; 608 : volt=3300;
0001c c1a02003 movgt r2, r3
; 609 :
; 610 : //codec the reg value
; 611 : if(gate)
; 612 : gateval=0xE0;
; 613 : else
; 614 : gateval=0x0;
; 615 : data[1]=0x00;
; 616 : m=(volt-900)/300;
00020 e59f3058 ldr r3, [pc, #0x58]
00024 e2424fe1 sub r4, r2, #0xE1, 30
00028 e3510000 cmp r1, #0
; 617 : data[1]+=m;
; 618 : data[1]+=gateval;
; 619 : //XllpPI2cInit(pmuRegs->pi2c_reg_base,pmuRegs->gpio_reg_base,pmuRegs->clk_reg_base,0);
; 620 : data[0]=0x1f;
; 621 : XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 2, 1);
0002c e0c3e394 smull lr, r3, r4, r3
00030 13a050e0 movne r5, #0xE0
00034 e1a032c3 mov r3, r3, asr #5
00038 e0833fa3 add r3, r3, r3, lsr #31
0003c 03a05000 moveq r5, #0
00040 e5901004 ldr r1, [r0, #4]
00044 e5900010 ldr r0, [r0, #0x10]
00048 e0833005 add r3, r3, r5
0004c e5cd3009 strb r3, [sp, #9]
00050 e3a0701f mov r7, #0x1F
00054 e3a05001 mov r5, #1
00058 e3a06002 mov r6, #2
0005c e28d3008 add r3, sp, #8
00060 e3a02008 mov r2, #8
00064 e5cd7008 strb r7, [sp, #8]
00068 e58d5004 str r5, [sp, #4]
0006c e58d6000 str r6, [sp]
00070 eb000000 bl XllpPI2CWrite
; 622 : //if(IsMutex)
; 623 : // ReleasePcf506Mutex();
; 624 : return;
; 625 : }
00074 e28dd00c add sp, sp, #0xC
00078 e8bd40f0 ldmia sp!, {r4 - r7, lr}
0007c e12fff1e bx lr
00080 |$L35752|
00080 1b4e81b5 DCD 0x1b4e81b5
00084 |$M35748|
ENDP ; |Pcf50606DCDE|
EXPORT |Pcf50606DCUD|
00000 AREA |.text| { |Pcf50606DCUD| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Pcf50606DCUD|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf50606DCUD| } ; comdat associative
|$T35764| DCD |$L35763|
DCD 0x40003b02
; Function compile flags: /Ogsy
00000 AREA |.text| { |Pcf50606DCUD| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Pcf50606DCUD| PROC
; 634 : {
00000 |$L35763|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M35761|
00008 e1a0e002 mov lr, r2
0000c e1a07000 mov r7, r0
; 635 : unsigned char data[2];
; 636 : int m=0;
; 637 : unsigned char gateval=0x0;
; 638 : //BOOL IsMutex=FALSE;
; 639 : //IsMutex=WaitPcf506Mutex();
; 640 :
; 641 : //whether the volt is valide
; 642 : if(volt<900)
00010 e35e0fe1 cmp lr, #0xE1, 30
; 643 : volt=900;
; 644 : if(volt>3300 && volt<4000)
00014 e3a03ece mov r3, #0xCE, 28
00018 b3a0efe1 movlt lr, #0xE1, 30
0001c e3833005 orr r3, r3, #5
00020 e3a02fae mov r2, #0xAE, 30
00024 e04e3003 sub r3, lr, r3
00028 e3822002 orr r2, r2, #2
0002c e3a04ece mov r4, #0xCE, 28
00030 e1530002 cmp r3, r2
; 645 : volt=3300;
; 646 : if(volt>5500)
00034 e3a03d55 mov r3, #0x55, 26
00038 e3844004 orr r4, r4, #4
0003c e383303c orr r3, r3, #0x3C
00040 91a0e004 movls lr, r4
00044 e15e0003 cmp lr, r3
; 647 : volt = 5500;
00048 c1a0e003 movgt lr, r3
; 648 :
; 649 : //codec the reg value
; 650 : if(gate)
0004c e3510000 cmp r1, #0
; 651 : gateval=0xE0;
00050 13a050e0 movne r5, #0xE0
; 652 : else
; 653 : gateval=0x0;
00054 03a05000 moveq r5, #0
; 654 : if(volt<3300)
00058 e15e0004 cmp lr, r4
0005c e3a06000 mov r6, #0
00060 aa000016 bge |$L35377|
; 655 : {
; 656 : data[1]=0x00;
; 657 : m=(volt-900)/300;
00064 e59f307c ldr r3, [pc, #0x7C]
00068 e24e1fe1 sub r1, lr, #0xE1, 30
0006c e0c32391 smull r2, r3, r1, r3
00070 e1a032c3 mov r3, r3, asr #5
00074 e0836fa3 add r6, r3, r3, lsr #31
00078 |$L35379|
; 665 : data[1]=0x0;
00078 e3a00000 mov r0, #0
0007c |$L35380|
0007c e0803005 add r3, r0, r5
; 666 : data[1]+=m;
; 667 : data[1]+=gateval;
; 668 : //XllpPI2cInit(pmuRegs->pi2c_reg_base,pmuRegs->gpio_reg_base,pmuRegs->clk_reg_base,0);
; 669 : data[0]=0x21;
; 670 : XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 2, 1);
00080 e5971004 ldr r1, [r7, #4]
00084 e5970010 ldr r0, [r7, #0x10]
00088 e0833006 add r3, r3, r6
0008c e5cd3009 strb r3, [sp, #9]
00090 e3a0e021 mov lr, #0x21
00094 e3a04001 mov r4, #1
00098 e3a05002 mov r5, #2
0009c e28d3008 add r3, sp, #8
000a0 e3a02008 mov r2, #8
000a4 e5cde008 strb lr, [sp, #8]
000a8 e58d4004 str r4, [sp, #4]
000ac e58d5000 str r5, [sp]
000b0 eb000000 bl XllpPI2CWrite
; 671 : //if(IsMutex)
; 672 : // ReleasePcf506Mutex();
; 673 : return;
; 674 : }
000b4 e28dd00c add sp, sp, #0xC
000b8 e8bd40f0 ldmia sp!, {r4 - r7, lr}
000bc e12fff1e bx lr
000c0 |$L35377|
; 658 : }
; 659 : else if(volt>4000)
000c0 e35e0efa cmp lr, #0xFA, 28
000c4 daffffeb ble |$L35379|
; 660 : {
; 661 : data[1]=0x10;
; 662 : m=(volt-4000)/100;
000c8 e59f3014 ldr r3, [pc, #0x14]
000cc e24e1efa sub r1, lr, #0xFA, 28
000d0 e3a00010 mov r0, #0x10
000d4 e0c32391 smull r2, r3, r1, r3
000d8 e1a032c3 mov r3, r3, asr #5
000dc e0836fa3 add r6, r3, r3, lsr #31
; 663 : }
; 664 : else
000e0 eaffffe5 b |$L35380|
000e4 |$L35766|
000e4 51eb851f DCD 0x51eb851f
000e8 1b4e81b5 DCD 0x1b4e81b5
000ec |$M35762|
ENDP ; |Pcf50606DCUD|
EXPORT |Pcf50606IO|
00000 AREA |.text| { |Pcf50606IO| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Pcf50606IO|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf50606IO| } ; comdat associative
|$T35776| DCD |$L35775|
DCD 0x40002402
; Function compile flags: /Ogsy
00000 AREA |.text| { |Pcf50606IO| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Pcf50606IO| PROC
; 681 : {
00000 |$L35775|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M35773|
; 682 : unsigned char data[2];
; 683 : int m=0;
; 684 : unsigned char gateval=0x0;
; 685 : //BOOL IsMutex=FALSE;
; 686 : //IsMutex=WaitPcf506Mutex();
; 687 :
; 688 : //whether the volt is valide
; 689 : if(volt<1800)
00008 e3a0ec07 mov lr, #7, 24
0000c e38ee008 orr lr, lr, #8
00010 e152000e cmp r2, lr
; 690 : volt=1800;
; 691 : if(volt>3300)
00014 e3a03ece mov r3, #0xCE, 28
00018 b1a0200e movlt r2, lr
0001c e3833004 orr r3, r3, #4
00020 e1520003 cmp r2, r3
; 692 : volt=3300;
00024 c1a02003 movgt r2, r3
; 693 :
; 694 : //codec the reg value
; 695 : if(gate)
; 696 : gateval=0xE0;
; 697 : else
; 698 : gateval=0x0;
; 699 : data[1]=0x09;
; 700 : m=(volt-1800)/100;
00028 e59f305c ldr r3, [pc, #0x5C]
0002c e042400e sub r4, r2, lr
00030 e3510000 cmp r1, #0
; 701 : data[1]+=m;
; 702 : data[1]+=gateval;
; 703 : //XllpPI2cInit(pmuRegs->pi2c_reg_base,pmuRegs->gpio_reg_base,pmuRegs->clk_reg_base,0);
; 704 : data[0]=0x23;
; 705 : XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 2, 1);
00034 e0c3e394 smull lr, r3, r4, r3
00038 13a050e0 movne r5, #0xE0
0003c e1a032c3 mov r3, r3, asr #5
00040 e0833fa3 add r3, r3, r3, lsr #31
00044 03a05000 moveq r5, #0
00048 e0833005 add r3, r3, r5
0004c e5901004 ldr r1, [r0, #4]
00050 e5900010 ldr r0, [r0, #0x10]
00054 e2833009 add r3, r3, #9
00058 e5cd3009 strb r3, [sp, #9]
0005c e3a07023 mov r7, #0x23
00060 e3a05001 mov r5, #1
00064 e3a06002 mov r6, #2
00068 e28d3008 add r3, sp, #8
0006c e3a02008 mov r2, #8
00070 e5cd7008 strb r7, [sp, #8]
00074 e58d5004 str r5, [sp, #4]
00078 e58d6000 str r6, [sp]
0007c eb000000 bl XllpPI2CWrite
; 706 : //if(IsMutex)
; 707 : // ReleasePcf506Mutex();
; 708 : return;
; 709 : }
00080 e28dd00c add sp, sp, #0xC
00084 e8bd40f0 ldmia sp!, {r4 - r7, lr}
00088 e12fff1e bx lr
0008c |$L35778|
0008c 51eb851f DCD 0x51eb851f
00090 |$M35774|
ENDP ; |Pcf50606IO|
EXPORT |Pcf50606D1|
00000 AREA |.text| { |Pcf50606D1| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Pcf50606D1|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf50606D1| } ; comdat associative
|$T35788| DCD |$L35787|
DCD 0x40002102
; Function compile flags: /Ogsy
00000 AREA |.text| { |Pcf50606D1| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Pcf50606D1| PROC
; 717 : {
00000 |$L35787|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M35785|
; 718 : unsigned char data[2];
; 719 : int m=0;
; 720 : unsigned char gateval=0x0;
; 721 : //BOOL IsMutex=FALSE;
; 722 : //IsMutex=WaitPcf506Mutex();
; 723 :
; 724 : //whether the volt is valide
; 725 : if(volt<900)
00008 e3520fe1 cmp r2, #0xE1, 30
; 726 : volt=900;
; 727 : if(volt>3300)
0000c e3a03ece mov r3, #0xCE, 28
00010 b3a02fe1 movlt r2, #0xE1, 30
00014 e3833004 orr r3, r3, #4
00018 e1520003 cmp r2, r3
; 728 : volt=3300;
0001c c1a02003 movgt r2, r3
; 729 :
; 730 : //codec the reg value
; 731 : if(gate)
; 732 : gateval=0xC0; //when POWEN low, close this regulator
; 733 : else
; 734 : gateval=0x0;
; 735 : data[1]=0x00;
; 736 : m=(volt-900)/100;
00020 e59f3058 ldr r3, [pc, #0x58]
00024 e2424fe1 sub r4, r2, #0xE1, 30
00028 e3510000 cmp r1,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -