📄 xllp_pccardsocket.cod
字号:
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 + -