📄 detection.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Bootloader\Common\.\detection.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.bss|, NOINIT
|g_sPcmciaInfo| % 0x8
00000 AREA |.rdata|, DATA, READONLY
|EdbgVendorIds| DCW 0x0
DCW 0x0
DCD 0x4033
DCB 0x1
DCB 0x0
DCB "AD", 0x0
% 3
DCW 0x1050
DCW 0x940
DCD 0x4005
DCB 0x1
DCB 0x0
DCB "LS", 0x0
% 3
DCW 0x1050
DCW 0x940
DCD 0x2078
DCB 0x1
DCB 0x0
DCB "LS", 0x0
% 3
DCW 0x10ec
DCW 0x8029
DCD 0xc0f0
DCB 0x1
DCB 0x0
DCB "KS", 0x0
% 3
DCW 0x10ec
DCW 0x8129
DCD 0x0
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0x900b
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0xd0c9
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0xe04c
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x1186
DCW 0x1300
DCD 0x50ba
DCB 0x4
DCB 0x0
DCB "DL", 0x0
% 3
DCW 0x100b
DCW 0x20
DCD 0xa0cc
DCB 0x5
DCB 0x0
DCB "NG", 0x0
% 3
DCW 0x10b7
DCW 0x9050
DCD 0x6008
DCB 0x6
DCB 0x0
DCB "3C", 0x0
% 3
DCW 0x10b7
DCW 0x9200
DCD 0x476
DCB 0x6
DCB 0x0
DCB "3C", 0x0
% 3
DCW 0x8086
DCW 0x1039
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x103a
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x1051
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x1229
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x2449
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
EXPORT |OEMHDDDetect|
EXPORT |??_C@_0CL@MPDBIFHI@Found?5Compact?5Flash?5Card?5in?5PCMC@| [ DATA ] ; `string'
EXPORT |??_C@_0CN@MMEIFIHH@Found?5Hard?5Drive?1CF?5Card?5in?5IDE?5@| [ DATA ] ; `string'
IMPORT |OEMHDDImageCheck|
IMPORT |EdbgOutputDebugString|
; File c:\wince500\platform\ep93xx\src\bootloader\common\detection.c
00000 AREA |.text| { |OEMHDDDetect| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMHDDDetect|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMHDDDetect| } ; comdat associative
|$T38715| DCD |$L38714|
DCD 0x40002f02
00000 AREA |.rdata| { |??_C@_0CN@MMEIFIHH@Found?5Hard?5Drive?1CF?5Card?5in?5IDE?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CN@MMEIFIHH@Found?5Hard?5Drive?1CF?5Card?5in?5IDE?5@| DCB "Found "
DCB "Hard Drive/CF Card in IDE interface.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0CL@MPDBIFHI@Found?5Compact?5Flash?5Card?5in?5PCMC@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CL@MPDBIFHI@Found?5Compact?5Flash?5Card?5in?5PCMC@| DCB "Found Co"
DCB "mpact Flash Card in PCMCIA slot.", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ods
00000 AREA |.text| { |OEMHDDDetect| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMHDDDetect| PROC
; 173 : {
00000 |$L38714|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd018 sub sp, sp, #0x18
00008 |$M38712|
; 174 : BOOL bRet = FALSE;
00008 e3a03000 mov r3, #0
0000c e58d3000 str r3, [sp]
; 175 : #ifdef EDB9307_12_15
; 176 : //
; 177 : // Check to see if there is a compact flash card in the PCMCIA slot.
; 178 : //
; 179 : bRet = OEM_PCMCIA_HDDDetect();
00010 eb000000 bl OEM_PCMCIA_HDDDetect
00014 e58d0008 str r0, [sp, #8]
00018 e59d3008 ldr r3, [sp, #8]
0001c e58d3000 str r3, [sp]
; 180 : if ( bRet )
00020 e59d3000 ldr r3, [sp]
00024 e3530000 cmp r3, #0
00028 0a000008 beq |$L38642|
; 181 : {
; 182 : EdbgOutputDebugString("Found Compact Flash Card in PCMCIA slot.\r\n");
0002c e59f0084 ldr r0, [pc, #0x84]
00030 eb000000 bl EdbgOutputDebugString
; 183 : if(OEMHDDImageCheck()==-1)
00034 eb000000 bl OEMHDDImageCheck
00038 e58d000c str r0, [sp, #0xC]
0003c e59d300c ldr r3, [sp, #0xC]
00040 e3730001 cmn r3, #1
00044 1a000001 bne |$L38644|
; 184 : {
; 185 : bRet = FALSE;
00048 e3a03000 mov r3, #0
0004c e58d3000 str r3, [sp]
00050 |$L38644|
00050 |$L38642|
; 186 : }
; 187 : }
; 188 : #endif
; 189 : //
; 190 : // Check to see if there i a compact flash card/IDE hard drive in the
; 191 : // IDE slot.
; 192 : //
; 193 : if ( !bRet )
00050 e59d3000 ldr r3, [sp]
00054 e3530000 cmp r3, #0
00058 1a00000f bne |$L38645|
; 194 : {
; 195 : bRet = OEM_IDE_HDDDetect();
0005c eb000000 bl OEM_IDE_HDDDetect
00060 e58d0010 str r0, [sp, #0x10]
00064 e59d3010 ldr r3, [sp, #0x10]
00068 e58d3000 str r3, [sp]
; 196 : if(bRet)
0006c e59d3000 ldr r3, [sp]
00070 e3530000 cmp r3, #0
00074 0a000008 beq |$L38646|
; 197 : {
; 198 : EdbgOutputDebugString("Found Hard Drive/CF Card in IDE interface.\r\n");
00078 e59f0034 ldr r0, [pc, #0x34]
0007c eb000000 bl EdbgOutputDebugString
; 199 : if(OEMHDDImageCheck()==-1)
00080 eb000000 bl OEMHDDImageCheck
00084 e58d0014 str r0, [sp, #0x14]
00088 e59d3014 ldr r3, [sp, #0x14]
0008c e3730001 cmn r3, #1
00090 1a000001 bne |$L38648|
; 200 : bRet = FALSE;
00094 e3a03000 mov r3, #0
00098 e58d3000 str r3, [sp]
0009c |$L38648|
0009c |$L38646|
0009c |$L38645|
; 201 : }
; 202 : }
; 203 :
; 204 : return bRet;
0009c e59d3000 ldr r3, [sp]
000a0 e58d3004 str r3, [sp, #4]
000a4 e59d0004 ldr r0, [sp, #4]
; 205 : }
000a8 e28dd018 add sp, sp, #0x18
000ac e49de004 ldr lr, [sp], #4
000b0 e12fff1e bx lr
000b4 |$L38717|
000b4 00000000 DCD |??_C@_0CN@MMEIFIHH@Found?5Hard?5Drive?1CF?5Card?5in?5IDE?5@|
000b8 00000000 DCD |??_C@_0CL@MPDBIFHI@Found?5Compact?5Flash?5Card?5in?5PCMC@|
000bc |$M38713|
ENDP ; |OEMHDDDetect|
IMPORT |m_BootDeviceType|
00000 AREA |.text| { |OEM_PCMCIA_HDDDetect| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEM_PCMCIA_HDDDetect|, PDATA, SELECTION=5, ASSOC=|.text| { |OEM_PCMCIA_HDDDetect| } ; comdat associative
|$T38726| DCD |$L38725|
DCD 0x40002302
; Function compile flags: /Ods
00000 AREA |.text| { |OEM_PCMCIA_HDDDetect| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEM_PCMCIA_HDDDetect| PROC
; 99 : {
00000 |$L38725|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd00c sub sp, sp, #0xC
00008 |$M38723|
; 100 : BOOL result = FALSE;
00008 e3a03000 mov r3, #0
0000c e58d3000 str r3, [sp]
; 101 :
; 102 : //
; 103 : // Initialize a PCMCIA card.
; 104 : // Not necessary to reinitialize the pcmcia card.
; 105 : //
; 106 : // OEMPCMCIAInitialize();
; 107 :
; 108 : //
; 109 : // Check to make sure that a card is inserted into the card slot.
; 110 : //
; 111 : if(*GPIO_PFDR & ( GPIOF_PCMCIA_CD1 | GPIOF_PCMCIA_CD2 ) )
00010 e59f3070 ldr r3, [pc, #0x70]
00014 e5933000 ldr r3, [r3]
00018 e3130006 tst r3, #6
0001c 0a000002 beq |$L38628|
; 112 : {
; 113 : result = FALSE;
00020 e3a03000 mov r3, #0
00024 e58d3000 str r3, [sp]
; 114 : }
; 115 : else
00028 ea00000e b |$L38629|
0002c |$L38628|
; 116 : {
; 117 : //
; 118 : // Read certain locations in attribute space to see if it is a compact flash
; 119 : // cards.
; 120 : //
; 121 : PCMCIAParseTuples();
0002c eb000000 bl PCMCIAParseTuples
; 122 :
; 123 : //
; 124 : // Check to see if it is a hard drive.
; 125 : //
; 126 : result = (g_sPcmciaInfo.ucFuncID == FUNCTION_FIXED_DISK);
00030 e59f304c ldr r3, [pc, #0x4C]
00034 e5d33007 ldrb r3, [r3, #7]
00038 e3530004 cmp r3, #4
0003c 1a000002 bne |$L38720|
00040 e3a03001 mov r3, #1
00044 e58d3008 str r3, [sp, #8]
00048 ea000001 b |$L38721|
0004c |$L38720|
0004c e3a03000 mov r3, #0
00050 e58d3008 str r3, [sp, #8]
00054 |$L38721|
00054 e59d3008 ldr r3, [sp, #8]
00058 e58d3000 str r3, [sp]
; 127 :
; 128 : m_BootDeviceType =BOOT_FROM_PCMCIA;
0005c e59f201c ldr r2, [pc, #0x1C]
00060 e3a03c01 mov r3, #1, 24
00064 e5823000 str r3, [r2]
00068 |$L38629|
; 129 : }
; 130 :
; 131 : return( result );
00068 e59d3000 ldr r3, [sp]
0006c e58d3004 str r3, [sp, #4]
00070 e59d0004 ldr r0, [sp, #4]
; 132 : }
00074 e28dd00c add sp, sp, #0xC
00078 e49de004 ldr lr, [sp], #4
0007c e12fff1e bx lr
00080 |$L38728|
00080 00000000 DCD |m_BootDeviceType|
00084 00000000 DCD |g_sPcmciaInfo|
00088 80840030 DCD 0x80840030
0008c |$M38724|
ENDP ; |OEM_PCMCIA_HDDDetect|
EXPORT |??_C@_0BH@ENDOJKGM@ide_reset?5succeeded?4?$AN?6?$AA@| [ DATA ] ; `string'
IMPORT |id_drive|
IMPORT |ide_reset|
IMPORT |ide_enable|
00000 AREA |.text| { |OEM_IDE_HDDDetect| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEM_IDE_HDDDetect|, PDATA, SELECTION=5, ASSOC=|.text| { |OEM_IDE_HDDDetect| } ; comdat associative
|$T38735| DCD |$L38734|
DCD 0x40002302
00000 AREA |.rdata| { |??_C@_0BH@ENDOJKGM@ide_reset?5succeeded?4?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BH@ENDOJKGM@ide_reset?5succeeded?4?$AN?6?$AA@| DCB "ide_reset suc"
DCB "ceeded.", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ods
00000 AREA |.text| { |OEM_IDE_HDDDetect| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEM_IDE_HDDDetect| PROC
; 142 : {
00000 |$L38734|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd010 sub sp, sp, #0x10
00008 |$M38732|
; 143 : BOOL result = FALSE;
00008 e3a03000 mov r3, #0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -