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

📄 xllp_pccardsocket.cod

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 COD
📖 第 1 页 / 共 4 页
字号:
  0006c	e58230e4	 str         r3, [r2, #0xE4]

; 648  : 				}
; 649  : 				else if(uiCardVoltage == XLLP_PCCARD_3_30VOLTS)

  00070	ea00000b	 b           |$L1024|
  00074		 |$L1021|
  00074	e3520001	 cmp         r2, #1
  00078	1a000008	 bne         |$L1023|

; 650  : 				{
; 651  : 					//3.3V card detected; set bit[3] of the status register
; 652  : 					pstrSocketHandle->pstrBcrHandle->PCMCIAS1SCR |= (XLLP_BIT_3);

  0007c	e5912004	 ldr         r2, [r1, #4]

; 653  : 					pstrSocketHandle->pstrBcrHandle->PCMCIAS1SCR &= ~(XLLP_BIT_2);

  00080	e59230e4	 ldr         r3, [r2, #0xE4]
  00084	e3833008	 orr         r3, r3, #8
  00088	e58230e4	 str         r3, [r2, #0xE4]
  0008c	e5912004	 ldr         r2, [r1, #4]
  00090	e59230e4	 ldr         r3, [r2, #0xE4]
  00094	e3c33004	 bic         r3, r3, #4
  00098	e58230e4	 str         r3, [r2, #0xE4]
  0009c	ea000000	 b           |$L1024|
  000a0		 |$L1023|

; 654  : 				}
; 655  : 				else
; 656  : 				{
; 657  : 					//
; 658  : 					//Unsupported PC Card voltage
; 659  : 					//
; 660  :                     ReturnValue = XLLP_STATUS_PCCARD_FAILURE;

  000a0	e3a0000f	 mov         r0, #0xF
  000a4		 |$L1024|

; 661  : 				}
; 662  :                 (pstrSocketHandle->pstrBcrHandle->PCMCIAS1SCR) &= ~(XLLP_BCR_PCMCIA_SCR_S1_RESET);

  000a4	e5912004	 ldr         r2, [r1, #4]
  000a8	e59230e4	 ldr         r3, [r2, #0xE4]
  000ac	e3c33010	 bic         r3, r3, #0x10
  000b0	e58230e4	 str         r3, [r2, #0xE4]

; 670  :         } //end switch
; 671  :     }
; 672  : 
; 673  :     return ReturnValue;
; 674  : 
; 675  : } //end XllpPCCardEnableSocket()

  000b4	e89d6000	 ldmia       sp, {sp, lr}
  000b8	e12fff1e	 bx          lr
  000bc		 |$L1015|

; 611  :         {
; 612  :             case XLLP_PCCARD_SOCKET0:
; 613  : 
; 614  : 				if(uiCardVoltage == XLLP_PCCARD_5_00VOLTS)

  000bc	e3520002	 cmp         r2, #2
  000c0	1a000008	 bne         |$L1016|

; 615  : 				{
; 616  : 					//
; 617  : 					//5V card detected; set bit[2] of the status register
; 618  : 					//
; 619  : 					pstrSocketHandle->pstrBcrHandle->PCMCIAS0SCR |= (XLLP_BIT_2);

  000c4	e5912004	 ldr         r2, [r1, #4]

; 620  : 					pstrSocketHandle->pstrBcrHandle->PCMCIAS0SCR &= ~(XLLP_BIT_3);

  000c8	e59230e0	 ldr         r3, [r2, #0xE0]
  000cc	e3833004	 orr         r3, r3, #4
  000d0	e58230e0	 str         r3, [r2, #0xE0]
  000d4	e5912004	 ldr         r2, [r1, #4]
  000d8	e59230e0	 ldr         r3, [r2, #0xE0]
  000dc	e3c33008	 bic         r3, r3, #8
  000e0	e58230e0	 str         r3, [r2, #0xE0]

; 621  : 				}
; 622  : 				else if(uiCardVoltage == XLLP_PCCARD_3_30VOLTS)

  000e4	ea00000b	 b           |$L1019|
  000e8		 |$L1016|
  000e8	e3520001	 cmp         r2, #1
  000ec	1a000008	 bne         |$L1018|

; 623  : 				{
; 624  : 					//
; 625  : 					//3.3V card detected; set bit[3] of the status register
; 626  : 					//
; 627  : 					pstrSocketHandle->pstrBcrHandle->PCMCIAS0SCR |= (XLLP_BIT_3);

  000f0	e5912004	 ldr         r2, [r1, #4]

; 628  : 					pstrSocketHandle->pstrBcrHandle->PCMCIAS0SCR &= ~(XLLP_BIT_2);

  000f4	e59230e0	 ldr         r3, [r2, #0xE0]
  000f8	e3833008	 orr         r3, r3, #8
  000fc	e58230e0	 str         r3, [r2, #0xE0]
  00100	e5912004	 ldr         r2, [r1, #4]
  00104	e59230e0	 ldr         r3, [r2, #0xE0]
  00108	e3c33004	 bic         r3, r3, #4
  0010c	e58230e0	 str         r3, [r2, #0xE0]
  00110	ea000000	 b           |$L1019|
  00114		 |$L1018|

; 629  : 				}
; 630  : 				else
; 631  : 				{
; 632  : 					//
; 633  : 					//Unsupported PC Card voltage
; 634  : 					//
; 635  :                     ReturnValue = XLLP_STATUS_PCCARD_FAILURE;

  00114	e3a0000f	 mov         r0, #0xF
  00118		 |$L1019|

; 636  : 				}
; 637  :                 (pstrSocketHandle->pstrBcrHandle->PCMCIAS0SCR) &= ~(XLLP_BCR_PCMCIA_SCR_S0_RESET);

  00118	e5912004	 ldr         r2, [r1, #4]
  0011c	e59230e0	 ldr         r3, [r2, #0xE0]
  00120	e3c33010	 bic         r3, r3, #0x10
  00124	e58230e0	 str         r3, [r2, #0xE0]

; 670  :         } //end switch
; 671  :     }
; 672  : 
; 673  :     return ReturnValue;
; 674  : 
; 675  : } //end XllpPCCardEnableSocket()

  00128	e89d6000	 ldmia       sp, {sp, lr}
  0012c	e12fff1e	 bx          lr
  00130		 |$M1176|

			 ENDP  ; |XllpPCCardPowerOn|

	EXPORT	|XllpPCCardPowerOff|

  00000			 AREA	 |.text| { |XllpPCCardPowerOff| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpPCCardPowerOff|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpPCCardPowerOff| } ; comdat associative
|$T1190| DCD	|$L1189|
	DCD	0x40002603
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpPCCardPowerOff| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpPCCardPowerOff| PROC

; 697  : {

  00000		 |$L1189|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0002	 stmdb       sp!, {r1}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c		 |$M1187|
  0000c	e1a01000	 mov         r1, r0

; 698  :     XLLP_STATUS_T ReturnValue = XLLP_STATUS_SUCCESS;
; 699  : 
; 700  : 
; 701  : 
; 702  : 	//
; 703  :     //Check the validity of the input arguments to the function
; 704  : 	//
; 705  :     if((ushSocketNumber > XLLP_MAINSTONE_MAX_PCCARD_SOCKETS) ||
; 706  :        (pstrSocketHandle == XLLP_NULL_PTR))

  00010	e1dd30b8	 ldrh        r3, [sp, #8]
  00014	e3a00000	 mov         r0, #0
  00018	e3530002	 cmp         r3, #2
  0001c	8a000001	 bhi         |$L1034|
  00020	e3510000	 cmp         r1, #0
  00024	1a000002	 bne         |$L1182|
  00028		 |$L1034|

; 707  :     {
; 708  :         ReturnValue = XLLP_STATUS_PCCARD_FAILURE;  

  00028	e3a0000f	 mov         r0, #0xF

; 741  : 
; 742  :         } //end switch
; 743  :     } //end if
; 744  : 
; 745  :     return ReturnValue;
; 746  : 
; 747  : } //end XllpPCCardResetSocket()

  0002c	e89d6000	 ldmia       sp, {sp, lr}
  00030	e12fff1e	 bx          lr
  00034		 |$L1182|

; 709  :     } 
; 710  : 
; 711  :     if(ReturnValue != XLLP_STATUS_PCCARD_FAILURE)
; 712  :     {
; 713  :         switch(ushSocketNumber)

  00034	e1dd30b8	 ldrh        r3, [sp, #8]
  00038	e3530000	 cmp         r3, #0
  0003c	0a00000b	 beq         |$L1040|
  00040	e3530001	 cmp         r3, #1

; 722  : 
; 723  :                 break;
; 724  : 
; 725  :             case XLLP_PCCARD_SOCKET1:
; 726  : 
; 727  : 				//
; 728  :                 //Power off the socket
; 729  : 				//
; 730  :                 pstrSocketHandle->pstrBcrHandle->PCMCIAS1SCR |= (XLLP_BIT_2);
; 731  :                 pstrSocketHandle->pstrBcrHandle->PCMCIAS1SCR |= (XLLP_BIT_3);
; 732  : 
; 733  :                 break;
; 734  : 
; 735  :             default:
; 736  : 
; 737  :                 //TBD. Should not be here at all!!
; 738  :                 ReturnValue = XLLP_STATUS_PCCARD_FAILURE;
; 739  : 
; 740  :             break;

  00044	1afffff7	 bne         |$L1034|
  00048	e5912004	 ldr         r2, [r1, #4]
  0004c	e59230e4	 ldr         r3, [r2, #0xE4]
  00050	e3833004	 orr         r3, r3, #4
  00054	e58230e4	 str         r3, [r2, #0xE4]
  00058	e5912004	 ldr         r2, [r1, #4]
  0005c	e59230e4	 ldr         r3, [r2, #0xE4]
  00060	e3833008	 orr         r3, r3, #8
  00064	e58230e4	 str         r3, [r2, #0xE4]

; 741  : 
; 742  :         } //end switch
; 743  :     } //end if
; 744  : 
; 745  :     return ReturnValue;
; 746  : 
; 747  : } //end XllpPCCardResetSocket()

  00068	e89d6000	 ldmia       sp, {sp, lr}
  0006c	e12fff1e	 bx          lr
  00070		 |$L1040|

; 714  :         {
; 715  :             case XLLP_PCCARD_SOCKET0:
; 716  : 
; 717  : 				//
; 718  :                 //Power off the socket
; 719  : 				//
; 720  :                 pstrSocketHandle->pstrBcrHandle->PCMCIAS0SCR |= (XLLP_BIT_2);

  00070	e5912004	 ldr         r2, [r1, #4]
  00074	e59230e0	 ldr         r3, [r2, #0xE0]
  00078	e3833004	 orr         r3, r3, #4
  0007c	e58230e0	 str         r3, [r2, #0xE0]

; 721  :                 pstrSocketHandle->pstrBcrHandle->PCMCIAS0SCR |= (XLLP_BIT_3);

  00080	e5912004	 ldr         r2, [r1, #4]
  00084	e59230e0	 ldr         r3, [r2, #0xE0]
  00088	e3833008	 orr         r3, r3, #8
  0008c	e58230e0	 str         r3, [r2, #0xE0]

; 741  : 
; 742  :         } //end switch
; 743  :     } //end if
; 744  : 
; 745  :     return ReturnValue;
; 746  : 
; 747  : } //end XllpPCCardResetSocket()

  00090	e89d6000	 ldmia       sp, {sp, lr}
  00094	e12fff1e	 bx          lr
  00098		 |$M1188|

			 ENDP  ; |XllpPCCardPowerOff|

	EXPORT	|XllpPCCardGetVoltageSetting|

  00000			 AREA	 |.text| { |XllpPCCardGetVoltageSetting| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpPCCardGetVoltageSetting|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpPCCardGetVoltageSetting| } ; comdat associative
|$T1205| DCD	|$L1204|
	DCD	0x40002a03
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpPCCardGetVoltageSetting| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpPCCardGetVoltageSetting| PROC

; 770  : {

  00000		 |$L1204|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0002	 stmdb       sp!, {r1}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c		 |$M1202|
  0000c	e1a01000	 mov         r1, r0

; 771  :     XLLP_STATUS_T ReturnValue = XLLP_STATUS_SUCCESS;
; 772  : 
; 773  : 
; 774  : 
; 775  : 	//
; 776  :     //Check the validity of the input arguments to the function
; 777  : 	//
; 778  :     if((ushSocketNumber > XLLP_MAINSTONE_MAX_PCCARD_SOCKETS) ||
; 779  :        (pstrSocketHandle == XLLP_NULL_PTR))

  00010	e1dd30b8	 ldrh        r3, [sp, #8]
  00014	e3a00000	 mov         r0, #0
  00018	e3530002	 cmp         r3, #2
  0001c	8a00000a	 bhi         |$L1053|
  00020	e3510000	 cmp         r1, #0

; 780  :     {
; 781  :         ReturnValue = XLLP_STATUS_PCCARD_FAILURE;  
; 782  :     } 
; 783  : 
; 784  :     if(ReturnValue != XLLP_STATUS_PCCARD_FAILURE)

  00024	0a000008	 beq         |$L1053|

; 785  :     {
; 786  :         switch(ushSocketNumber)

  00028	e1dd30b8	 ldrh        r3, [sp, #8]
  0002c	e3530000	 cmp         r3, #0
  00030	0a00000d	 beq         |$L1059|
  00034	e3530001	 cmp         r3, #1

; 840  : 			        {
; 841  : 						//
; 842  : 			            //3.3 volt card detected in the socket
; 843  : 						//
; 844  : 			            *puiCardVoltage = XLLP_PCCARD_3_30VOLTS;
; 845  : 			        }
; 846  : 				}
; 847  : 
; 848  : 				break;
; 849  : 
; 850  :             default:
; 851  : 
; 852  :                 //TBD. Should not be here at all!!
; 853  :                 ReturnValue = XLLP_STATUS_PCCARD_FAILURE;
; 854  : 
; 855  :             break;

  00038	1a000003	 bne         |$L1053|
  0003c	e5911004	 ldr         r1, [r1, #4]
  00040	e59130e4	 ldr         r3, [r1, #0xE4]
  00044	e3130020	 tst         r3, #0x20
  00048	0a000002	 beq         |$L1065|
  0004c		 |$L1053|

; 814  : 			        }
; 815  : 				}
; 816  : 
; 817  : 				break;
; 818  : 
; 819  :             case XLLP_PCCARD_SOCKET1:
; 820  : 
; 821  : 				if((pstrSocketHandle->pstrBcrHandle->PCMCIAS1SCR) & (XLLP_BCR_PCMCIA_SCR_S0_nCD))
; 822  : 				{
; 823  : 					ReturnValue = XLLP_STATUS_PCCARD_FAILURE;

  0004c	e3a0000f	 mov         r0, #0xF

; 856  : 
; 857  : 		} //end switch
; 858  : 	}
; 859  : 
; 860  : 	return ReturnValue;
; 861  : 
; 862  : } //end XllpPCCardGetVoltageSetting()

  00050	e89d6000	 ldmia       sp, {sp, lr}
  00054	e12fff1e	 bx          lr
  00058		 |$L1065|

; 824  : 				}
; 825  : 				else
; 826  : 				{
; 827  : 					//
; 828  : 					//Determine the voltage requirements of the PC Card, else 
; 829  : 					//default voltage to 3.3V
; 830  : 					//
; 831  : 					if(((pstrSocketHandle->pstrBcrHandle->PCMCIAS1SCR) & (XLLP_BIT_6)) &&
; 832  : 		               ((pstrSocketHandle->pstrBcrHandle->PCMCIAS1SCR) & (XLLP_BIT_7)))

  00058	e59130e4	 ldr         r3, [r1, #0xE4]
  0005c	e3130040	 tst         r3, #0x40
  00060	0a00000c	 beq         |$L1062|
  00064	e59130e4	 ldr         r3, [r1, #0xE4]

; 833  : 			        {
; 834  : 						//
; 835  : 			            //5 volt card detected in the socket
; 836  : 						//
; 837  : 			            *puiCardVoltage = XLLP_PCCARD_5_00VOLTS;
; 838  : 			        }
; 839  : 			        else

  00068	ea000007	 b           |$L1201|
  0006c		 |$L1059|

; 787  :         {
; 788  :             case XLLP_PCCARD_SOCKET0:
; 789  : 
; 790  : 				if((pstrSocketHandle->pstrBcrHandle->PCMCIAS0SCR) & (XLLP_BCR_PCMCIA_SCR_S0_nCD))

  0006c	e5911004	 ldr         r1, [r1, #4]
  00070	e59130e0	 ldr         r3, [r1, #0xE0]
  00074	e3130020	 tst         r3, #0x20

; 791  : 				{
; 792  : 					ReturnValue = XLLP_STATUS_PCCARD_FAILURE;
; 793  : 				}
; 794  : 				else

  00078	1afffff3	 bne         |$L1053|

; 795  : 				{
; 796  : 					//
; 797  : 					//Determine the voltage requirements of the PC Card, else
; 798  : 					//default voltage to 3.3V
; 799  : 					//
; 800  : 					if(((pstrSocketHandle->pstrBcrHandle->PCMCIAS0SCR) & (XLLP_BIT_6)) &&
; 801  : 		               ((pstrSocketHandle->pstrBcrHandle->PCMCIAS0SCR) & (XLLP_BIT_7)))

  0007c	e59130e0	 ldr         r3, [r1, #0xE0]
  00080	e3130040	 tst         r3, #0x40
  00084	0a000003	 beq         |$L1062|
  00088	e59130e0	 ldr         r3, [r1, #0xE0]
  0008c		 |$L1201|
  0008c	e3130080	 tst         r3, #0x80

; 802  : 			        {
; 803  : 						//

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -