📄 main.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Bootloader\Common\.\main.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |bEthLaunch| [ DATA ]
00000 AREA |.data|, DATA
COMMON |EdbgDebugZone|, 0x4
00000 AREA |.bss|, NOINIT
|bEthLaunch| % 0x4
|pfnPlatformInit2| % 0x4
|pfnPreDownload| % 0x4
|pfnReadData| % 0x4
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 |??_C@_0DG@MAPNMLCE@ERROR?3?5EbootWaitForHostConenct?5f@| [ DATA ] ; `string'
EXPORT |??_C@_0CJ@BJAPMGEC@EBOOT?3?5pCfgData?5?$DN?50x?$CFx?0?5pCfgData@| [ DATA ] ; `string'
EXPORT |??_C@_0DI@BBOLALAE@Enabling?5debug?5messages?5over?5Eth@| [ DATA ] ; `string'
EXPORT |OEMLaunch|
EXPORT |??_C@_0DI@JCOIGDHP@Enabling?5CESH?5over?5Ethernet?0?5?5?5?5@| [ DATA ] ; `string'
EXPORT |??_C@_0DI@NGLJEIDL@Enabling?5KDBG?5over?5Ethernet?0?5?5?5?5@| [ DATA ] ; `string'
EXPORT |??_C@_0CE@IBJJNLHI@INFO?3?5Jumping?5to?5image?5at?50x?$CFX?4?4@| [ DATA ] ; `string'
IMPORT |DelayInuSec|
IMPORT |EbootWaitForHostConnect|
IMPORT |memcpy|
IMPORT |memset|
IMPORT |EdbgOutputDebugString|
IMPORT |inet_ntoa|
; File c:\wince500\platform\ep93xx\src\bootloader\common\main.c
00000 AREA |.text| { |OEMLaunch| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMLaunch|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMLaunch| } ; comdat associative
|$T39503| DCD |$L39502|
DCD 0x40011e04
00000 AREA |.rdata| { |??_C@_0CE@IBJJNLHI@INFO?3?5Jumping?5to?5image?5at?50x?$CFX?4?4@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CE@IBJJNLHI@INFO?3?5Jumping?5to?5image?5at?50x?$CFX?4?4@| DCB "IN"
DCB "FO: Jumping to image at 0x%X...", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DI@NGLJEIDL@Enabling?5KDBG?5over?5Ethernet?0?5?5?5?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DI@NGLJEIDL@Enabling?5KDBG?5over?5Ethernet?0?5?5?5?5@| DCB "Enabl"
DCB "ing KDBG over Ethernet, IP: %s, port:%u", 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DI@JCOIGDHP@Enabling?5CESH?5over?5Ethernet?0?5?5?5?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DI@JCOIGDHP@Enabling?5CESH?5over?5Ethernet?0?5?5?5?5@| DCB "Enabl"
DCB "ing CESH over Ethernet, IP: %s, port:%u", 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DI@BBOLALAE@Enabling?5debug?5messages?5over?5Eth@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DI@BBOLALAE@Enabling?5debug?5messages?5over?5Eth@| DCB "Enabling "
DCB "debug messages over Ethernet, IP: %s, port:%u", 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0CJ@BJAPMGEC@EBOOT?3?5pCfgData?5?$DN?50x?$CFx?0?5pCfgData@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CJ@BJAPMGEC@EBOOT?3?5pCfgData?5?$DN?50x?$CFx?0?5pCfgData@| DCB "E"
DCB "BOOT: pCfgData = 0x%x, pCfgData->Flags", 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DG@MAPNMLCE@ERROR?3?5EbootWaitForHostConenct?5f@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DG@MAPNMLCE@ERROR?3?5EbootWaitForHostConenct?5f@| DCB "ERROR: Ebo"
DCB "otWaitForHostConenct failed, spin forever", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ods
00000 AREA |.text| { |OEMLaunch| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMLaunch| PROC
; 140 : {
00000 |$L39502|
00000 e1a0c00d mov r12, sp
00004 e92d000f stmdb sp!, {r0 - r3}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd020 sub sp, sp, #0x20
00010 |$M39500|
; 141 : EDBG_OS_CONFIG_DATA *pCfgData;
; 142 : EDBG_ADDR EshellHostAddr;
; 143 :
; 144 : if (bEthLaunch) // Wait for host connection?
00010 e59f3444 ldr r3, [pc, #0x444]
00014 e5933000 ldr r3, [r3]
00018 e3530000 cmp r3, #0
0001c 0a0000fa beq |$L39377|
; 145 : {
; 146 : memset (&EshellHostAddr, 0, sizeof (EshellHostAddr));
00020 e3a0200c mov r2, #0xC
00024 e3a01000 mov r1, #0
00028 e28d0000 add r0, sp, #0
0002c eb000000 bl memset
; 147 : //pDriverGlobals->eth.EdbgAddr
; 148 :
; 149 : if (!(pCfgData = EbootWaitForHostConnect(&pDriverGlobals->eth.EdbgAddr, &EshellHostAddr)))
00030 e28d1000 add r1, sp, #0
00034 e3a03b22 mov r3, #0x22, 22
00038 e3830010 orr r0, r3, #0x10
0003c eb000000 bl EbootWaitForHostConnect
00040 e58d0010 str r0, [sp, #0x10]
00044 e59d3010 ldr r3, [sp, #0x10]
00048 e58d300c str r3, [sp, #0xC]
0004c e59d300c ldr r3, [sp, #0xC]
00050 e3530000 cmp r3, #0
00054 1a000002 bne |$L39379|
; 150 : {
; 151 : EdbgOutputDebugString("ERROR: EbootWaitForHostConenct failed, spin forever\r\n");
00058 e59f0414 ldr r0, [pc, #0x414]
0005c eb000000 bl EdbgOutputDebugString
; 152 : SpinForever();
00060 eb000000 bl SpinForever
00064 |$L39379|
; 153 : }
; 154 : EdbgOutputDebugString
; 155 : (
; 156 : "EBOOT: pCfgData = 0x%x, pCfgData->Flags\n",
; 157 : (ULONG)pCfgData,
; 158 : (ULONG)pCfgData->Flags
; 159 : );
00064 e59d300c ldr r3, [sp, #0xC]
00068 e5d32000 ldrb r2, [r3]
0006c e59d100c ldr r1, [sp, #0xC]
00070 e59f03f8 ldr r0, [pc, #0x3F8]
00074 eb000000 bl EdbgOutputDebugString
; 160 :
; 161 : if (pCfgData->Flags & EDBG_FL_DBGMSG)
00078 e59d300c ldr r3, [sp, #0xC]
0007c e5d33000 ldrb r3, [r3]
00080 e3130001 tst r3, #1
00084 0a000044 beq |$L39384|
; 162 : {
; 163 : EdbgOutputDebugString("Enabling debug messages over Ethernet, IP: %s, port:%u\n",
; 164 : inet_ntoa(pCfgData->DbgMsgIPAddr),ntohs(pCfgData->DbgMsgPort));
00088 e59d300c ldr r3, [sp, #0xC]
0008c e2831002 add r1, r3, #2
00090 e5d13003 ldrb r3, [r1, #3]
00094 e1a02403 mov r2, r3, lsl #8
00098 e5d13002 ldrb r3, [r1, #2]
0009c e1833002 orr r3, r3, r2
000a0 e1a02403 mov r2, r3, lsl #8
000a4 e5d13001 ldrb r3, [r1, #1]
000a8 e1833002 orr r3, r3, r2
000ac e1a02403 mov r2, r3, lsl #8
000b0 e5d13000 ldrb r3, [r1]
000b4 e1830002 orr r0, r3, r2
000b8 eb000000 bl inet_ntoa
000bc e58d0014 str r0, [sp, #0x14]
000c0 e59d300c ldr r3, [sp, #0xC]
000c4 e2831006 add r1, r3, #6
000c8 e5d13001 ldrb r3, [r1, #1]
000cc e1a03403 mov r3, r3, lsl #8
000d0 e1a02803 mov r2, r3, lsl #16
000d4 e1a02822 mov r2, r2, lsr #16
000d8 e5d13000 ldrb r3, [r1]
000dc e1833002 orr r3, r3, r2
000e0 e1a00403 mov r0, r3, lsl #8
000e4 e59d300c ldr r3, [sp, #0xC]
000e8 e2831006 add r1, r3, #6
000ec e5d13001 ldrb r3, [r1, #1]
000f0 e1a03403 mov r3, r3, lsl #8
000f4 e1a02803 mov r2, r3, lsl #16
000f8 e1a02822 mov r2, r2, lsr #16
000fc e5d13000 ldrb r3, [r1]
00100 e1833002 orr r3, r3, r2
00104 e1a03443 mov r3, r3, asr #8
00108 e1803003 orr r3, r0, r3
0010c e1a02803 mov r2, r3, lsl #16
00110 e1a02822 mov r2, r2, lsr #16
00114 e59d1014 ldr r1, [sp, #0x14]
00118 e59f034c ldr r0, [pc, #0x34C]
0011c eb000000 bl EdbgOutputDebugString
; 165 : memcpy((void *)&pDriverGlobals->eth.DbgHostAddr.wMAC, (void *)&EshellHostAddr.wMAC,6);
00120 e3a02006 mov r2, #6
00124 e28d1004 add r1, sp, #4
00128 e3a03b22 mov r3, #0x22, 22
0012c e3830038 orr r0, r3, #0x38
00130 eb000000 bl memcpy
; 166 : pDriverGlobals->eth.DbgHostAddr.dwIP = pCfgData->DbgMsgIPAddr;
00134 e59d300c ldr r3, [sp, #0xC]
00138 e2830002 add r0, r3, #2
0013c e3a03b22 mov r3, #0x22, 22
00140 e3831034 orr r1, r3, #0x34
00144 e5d03003 ldrb r3, [r0, #3]
00148 e1a02403 mov r2, r3, lsl #8
0014c e5d03002 ldrb r3, [r0, #2]
00150 e1833002 orr r3, r3, r2
00154 e1a02403 mov r2, r3, lsl #8
00158 e5d03001 ldrb r3, [r0, #1]
0015c e1833002 orr r3, r3, r2
00160 e1a02403 mov r2, r3, lsl #8
00164 e5d03000 ldrb r3, [r0]
00168 e1833002 orr r3, r3, r2
0016c e5813000 str r3, [r1]
; 167 : pDriverGlobals->eth.DbgHostAddr.wPort = pCfgData->DbgMsgPort;
00170 e59d300c ldr r3, [sp, #0xC]
00174 e2830006 add r0, r3, #6
00178 e3a03b22 mov r3, #0x22, 22
0017c e383103e orr r1, r3, #0x3E
00180 e5d03001 ldrb r3, [r0, #1]
00184 e1a03403 mov r3, r3, lsl #8
00188 e1a02803 mov r2, r3, lsl #16
0018c e1a02822 mov r2, r2, lsr #16
00190 e5d03000 ldrb r3, [r0]
00194 e1833002 orr r3, r3, r2
00198 e1c130b0 strh r3, [r1]
0019c |$L39384|
; 168 : }
; 169 : if (pCfgData->Flags & EDBG_FL_PPSH)
0019c e59d300c ldr r3, [sp, #0xC]
001a0 e5d33000 ldrb r3, [r3]
001a4 e3130002 tst r3, #2
001a8 0a000044 beq |$L39395|
; 170 : {
; 171 : EdbgOutputDebugString("Enabling CESH over Ethernet, IP: %s, port:%u\n",
; 172 : inet_ntoa(pCfgData->PpshIPAddr),ntohs(pCfgData->PpshPort));
001ac e59d300c ldr r3, [sp, #0xC]
001b0 e2831008 add r1, r3, #8
001b4 e5d13003 ldrb r3, [r1, #3]
001b8 e1a02403 mov r2, r3, lsl #8
001bc e5d13002 ldrb r3, [r1, #2]
001c0 e1833002 orr r3, r3, r2
001c4 e1a02403 mov r2, r3, lsl #8
001c8 e5d13001 ldrb r3, [r1, #1]
001cc e1833002 orr r3, r3, r2
001d0 e1a02403 mov r2, r3, lsl #8
001d4 e5d13000 ldrb r3, [r1]
001d8 e1830002 orr r0, r3, r2
001dc eb000000 bl inet_ntoa
001e0 e58d0018 str r0, [sp, #0x18]
001e4 e59d300c ldr r3, [sp, #0xC]
001e8 e283100c add r1, r3, #0xC
001ec e5d13001 ldrb r3, [r1, #1]
001f0 e1a03403 mov r3, r3, lsl #8
001f4 e1a02803 mov r2, r3, lsl #16
001f8 e1a02822 mov r2, r2, lsr #16
001fc e5d13000 ldrb r3, [r1]
00200 e1833002 orr r3, r3, r2
00204 e1a00403 mov r0, r3, lsl #8
00208 e59d300c ldr r3, [sp, #0xC]
0020c e283100c add r1, r3, #0xC
00210 e5d13001 ldrb r3, [r1, #1]
00214 e1a03403 mov r3, r3, lsl #8
00218 e1a02803 mov r2, r3, lsl #16
0021c e1a02822 mov r2, r2, lsr #16
00220 e5d13000 ldrb r3, [r1]
00224 e1833002 orr r3, r3, r2
00228 e1a03443 mov r3, r3, asr #8
0022c e1803003 orr r3, r0, r3
00230 e1a02803 mov r2, r3, lsl #16
00234 e1a02822 mov r2, r2, lsr #16
00238 e59d1018 ldr r1, [sp, #0x18]
0023c e59f0224 ldr r0, [pc, #0x224]
00240 eb000000 bl EdbgOutputDebugString
; 173 : memcpy((void *)&pDriverGlobals->eth.PpshHostAddr.wMAC, (void *)&EshellHostAddr.wMAC,6);
00244 e3a02006 mov r2, #6
00248 e28d1004 add r1, sp, #4
0024c e3a03b22 mov r3, #0x22, 22
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -