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

📄 xllp_pcf506.cod

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 COD
📖 第 1 页 / 共 5 页
字号:
	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 + -