📄 main.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 12.20.9615
TTL d:\wince420\platform\ep931x\eboot\.\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 "AD", 0x0
DCW 0x1050
DCW 0x940
DCD 0x4005
DCB 0x1
DCB "LS", 0x0
DCW 0x1050
DCW 0x940
DCD 0x2078
DCB 0x1
DCB "LS", 0x0
DCW 0x10ec
DCW 0x8029
DCD 0xc0f0
DCB 0x1
DCB "KS", 0x0
DCW 0x10ec
DCW 0x8129
DCD 0x0
DCB 0x4
DCB "RT", 0x0
DCW 0x10ec
DCW 0x8139
DCD 0x900b
DCB 0x4
DCB "RT", 0x0
DCW 0x10ec
DCW 0x8139
DCD 0xd0c9
DCB 0x4
DCB "RT", 0x0
DCW 0x10ec
DCW 0x8139
DCD 0xe04c
DCB 0x4
DCB "RT", 0x0
DCW 0x1186
DCW 0x1300
DCD 0x50ba
DCB 0x4
DCB "DL", 0x0
DCW 0x100b
DCW 0x20
DCD 0xa0cc
DCB 0x5
DCB "NG", 0x0
DCW 0x10b7
DCW 0x9050
DCD 0x6008
DCB 0x6
DCB "3C", 0x0
DCW 0x10b7
DCW 0x9200
DCD 0x476
DCB 0x6
DCB "3C", 0x0
EXPORT |OEMLaunch|
EXPORT |??_C@_0DG@MOBB@ERROR?3?5EbootWaitForHostConenct?5f@| [ DATA ] ; `string'
EXPORT |??_C@_0CJ@JILK@EBOOT?3?5pCfgData?5?$DN?50x?$CFx?0?5pCfgData@| [ DATA ] ; `string'
EXPORT |??_C@_0DI@JEIJ@Enabling?5debug?5messages?5over?5Eth@| [ DATA ] ; `string'
EXPORT |??_C@_0DI@EBJP@Enabling?5CESH?5over?5Ethernet?0?5?5?5?5@| [ DATA ] ; `string'
EXPORT |??_C@_0DI@HAGA@Enabling?5KDBG?5over?5Ethernet?0?5?5?5?5@| [ DATA ] ; `string'
EXPORT |??_C@_0CE@HOK@INFO?3?5Jumping?5to?5image?5at?50x?$CFX?4?4@| [ DATA ] ; `string'
IMPORT |memcpy|
IMPORT |EbootWaitForHostConnect|
IMPORT |EdbgOutputDebugString|
IMPORT |inet_ntoa|
IMPORT |DelayInuSec|
; File d:\wince420\platform\ep931x\eboot\main.c
00000 AREA |.text| { |OEMLaunch| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMLaunch|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMLaunch| } ; comdat associative
|$T37667| DCD |OEMLaunch|
DCD 0x4000be02
00000 AREA |.rdata| { |??_C@_0DG@MOBB@ERROR?3?5EbootWaitForHostConenct?5f@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DG@MOBB@ERROR?3?5EbootWaitForHostConenct?5f@| DCB "ERROR: EbootWa"
DCB "itForHostConenct failed, spin forever", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0CJ@JILK@EBOOT?3?5pCfgData?5?$DN?50x?$CFx?0?5pCfgData@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CJ@JILK@EBOOT?3?5pCfgData?5?$DN?50x?$CFx?0?5pCfgData@| DCB "EBOOT"
DCB ": pCfgData = 0x%x, pCfgData->Flags", 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DI@JEIJ@Enabling?5debug?5messages?5over?5Eth@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DI@JEIJ@Enabling?5debug?5messages?5over?5Eth@| DCB "Enabling debu"
DCB "g messages over Ethernet, IP: %s, port:%u", 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DI@EBJP@Enabling?5CESH?5over?5Ethernet?0?5?5?5?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DI@EBJP@Enabling?5CESH?5over?5Ethernet?0?5?5?5?5@| DCB "Enabling "
DCB "CESH over Ethernet, IP: %s, port:%u", 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DI@HAGA@Enabling?5KDBG?5over?5Ethernet?0?5?5?5?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DI@HAGA@Enabling?5KDBG?5over?5Ethernet?0?5?5?5?5@| DCB "Enabling "
DCB "KDBG over Ethernet, IP: %s, port:%u", 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0CE@HOK@INFO?3?5Jumping?5to?5image?5at?50x?$CFX?4?4@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CE@HOK@INFO?3?5Jumping?5to?5image?5at?50x?$CFX?4?4@| DCB "INFO: J"
DCB "umping to image at 0x%X...", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMLaunch| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMLaunch| PROC
; 124 : {
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M37665|
00008 e1a07002 mov r7, r2
; 125 : EDBG_OS_CONFIG_DATA *pCfgData;
; 126 : EDBG_ADDR EshellHostAddr;
; 127 :
; 128 : if (bEthLaunch) // Wait for host connection?
0000c e59f62e0 ldr r6, [pc, #0x2E0]
00010 e5960000 ldr r0, [r6]
00014 e3500000 cmp r0, #0
00018 0a0000a0 beq |$L37535|
; 129 : {
; 130 : memset (&EshellHostAddr, 0, sizeof (EshellHostAddr));
0001c e3a00000 mov r0, #0
00020 e58d0000 str r0, [sp]
; 131 : //pDriverGlobals->eth.EdbgAddr
; 132 :
; 133 : if (!(pCfgData = EbootWaitForHostConnect(&pDriverGlobals->eth.EdbgAddr, &EshellHostAddr)))
00024 e28d1000 add r1, sp, #0
00028 e58d0004 str r0, [sp, #4]
0002c e58d0008 str r0, [sp, #8]
00030 e3a00b22 mov r0, #0x22, 22
00034 e3800010 orr r0, r0, #0x10
00038 eb000000 bl EbootWaitForHostConnect
0003c e1b05000 movs r5, r0
00040 1a000002 bne |$L37537|
; 134 : {
; 135 : EdbgOutputDebugString("ERROR: EbootWaitForHostConenct failed, spin forever\r\n");
00044 e59f02a4 ldr r0, [pc, #0x2A4]
00048 eb000000 bl EdbgOutputDebugString
; 136 : SpinForever();
0004c eb000000 bl SpinForever
00050 |$L37537|
; 137 : }
; 138 : EdbgOutputDebugString
; 139 : (
; 140 : "EBOOT: pCfgData = 0x%x, pCfgData->Flags\n",
; 141 : (ULONG)pCfgData,
; 142 : (ULONG)pCfgData->Flags
; 143 : );
00050 e5d52000 ldrb r2, [r5]
00054 e1a01005 mov r1, r5
00058 e59f028c ldr r0, [pc, #0x28C]
0005c eb000000 bl EdbgOutputDebugString
; 144 :
; 145 : if (pCfgData->Flags & EDBG_FL_DBGMSG)
00060 e5d53000 ldrb r3, [r5]
00064 e3130001 tst r3, #1
00068 0a000029 beq |$L37542|
; 146 : {
; 147 : EdbgOutputDebugString("Enabling debug messages over Ethernet, IP: %s, port:%u\n",
; 148 : inet_ntoa(pCfgData->DbgMsgIPAddr),ntohs(pCfgData->DbgMsgPort));
0006c e5d51002 ldrb r1, [r5, #2]
00070 e5d50003 ldrb r0, [r5, #3]
00074 e1812400 orr r2, r1, r0, lsl #8
00078 e5d51004 ldrb r1, [r5, #4]
0007c e5d50005 ldrb r0, [r5, #5]
00080 e1823801 orr r3, r2, r1, lsl #16
00084 e1830c00 orr r0, r3, r0, lsl #24
00088 eb000000 bl inet_ntoa
0008c e5d51006 ldrb r1, [r5, #6]
00090 e1a04000 mov r4, r0
00094 e5d50007 ldrb r0, [r5, #7]
00098 e1813400 orr r3, r1, r0, lsl #8
0009c e1a01403 mov r1, r3, lsl #8
000a0 e1a00801 mov r0, r1, lsl #16
000a4 e1a02820 mov r2, r0, lsr #16
000a8 e1a01802 mov r1, r2, lsl #16
000ac e1a00821 mov r0, r1, lsr #16
000b0 e1802423 orr r2, r0, r3, lsr #8
000b4 e59f022c ldr r0, [pc, #0x22C]
000b8 e1a01004 mov r1, r4
000bc eb000000 bl EdbgOutputDebugString
; 149 : memcpy((void *)&pDriverGlobals->eth.DbgHostAddr.wMAC, (void *)&EshellHostAddr.wMAC,6);
000c0 e3a00b22 mov r0, #0x22, 22
000c4 e3800038 orr r0, r0, #0x38
000c8 e28d1004 add r1, sp, #4
000cc e3a02006 mov r2, #6
000d0 eb000000 bl memcpy
; 150 : pDriverGlobals->eth.DbgHostAddr.dwIP = pCfgData->DbgMsgIPAddr;
000d4 e5d51002 ldrb r1, [r5, #2]
000d8 e5d50003 ldrb r0, [r5, #3]
000dc e3a04b22 mov r4, #0x22, 22
000e0 e3844034 orr r4, r4, #0x34
000e4 e1812400 orr r2, r1, r0, lsl #8
000e8 e5d51004 ldrb r1, [r5, #4]
000ec e5d50005 ldrb r0, [r5, #5]
000f0 e1823801 orr r3, r2, r1, lsl #16
000f4 e1831c00 orr r1, r3, r0, lsl #24
000f8 e5841000 str r1, [r4]
; 151 : pDriverGlobals->eth.DbgHostAddr.wPort = pCfgData->DbgMsgPort;
000fc e3a02b22 mov r2, #0x22, 22
00100 e5d51006 ldrb r1, [r5, #6]
00104 e382203e orr r2, r2, #0x3E
00108 e5d50007 ldrb r0, [r5, #7]
0010c e1811400 orr r1, r1, r0, lsl #8
00110 e1c210b0 strh r1, [r2]
00114 |$L37542|
; 152 : }
; 153 : if (pCfgData->Flags & EDBG_FL_PPSH)
00114 e5d50000 ldrb r0, [r5]
00118 e3100002 tst r0, #2
0011c 0a000029 beq |$L37553|
; 154 : {
; 155 : EdbgOutputDebugString("Enabling CESH over Ethernet, IP: %s, port:%u\n",
; 156 : inet_ntoa(pCfgData->PpshIPAddr),ntohs(pCfgData->PpshPort));
00120 e5d51008 ldrb r1, [r5, #8]
00124 e5d50009 ldrb r0, [r5, #9]
00128 e1812400 orr r2, r1, r0, lsl #8
0012c e5d5100a ldrb r1, [r5, #0xA]
00130 e5d5000b ldrb r0, [r5, #0xB]
00134 e1823801 orr r3, r2, r1, lsl #16
00138 e1830c00 orr r0, r3, r0, lsl #24
0013c eb000000 bl inet_ntoa
00140 e5d5100c ldrb r1, [r5, #0xC]
00144 e1a04000 mov r4, r0
00148 e5d5000d ldrb r0, [r5, #0xD]
0014c e1813400 orr r3, r1, r0, lsl #8
00150 e1a01403 mov r1, r3, lsl #8
00154 e1a00801 mov r0, r1, lsl #16
00158 e1a02820 mov r2, r0, lsr #16
0015c e1a01802 mov r1, r2, lsl #16
00160 e1a00821 mov r0, r1, lsr #16
00164 e1802423 orr r2, r0, r3, lsr #8
00168 e59f0174 ldr r0, [pc, #0x174]
0016c e1a01004 mov r1, r4
00170 eb000000 bl EdbgOutputDebugString
; 157 : memcpy((void *)&pDriverGlobals->eth.PpshHostAddr.wMAC, (void *)&EshellHostAddr.wMAC,6);
00174 e3a00b22 mov r0, #0x22, 22
00178 e3800050 orr r0, r0, #0x50
0017c e28d1004 add r1, sp, #4
00180 e3a02006 mov r2, #6
00184 eb000000 bl memcpy
; 158 : pDriverGlobals->eth.PpshHostAddr.dwIP = pCfgData->PpshIPAddr;
00188 e5d51008 ldrb r1, [r5, #8]
0018c e5d50009 ldrb r0, [r5, #9]
00190 e3a04b22 mov r4, #0x22, 22
00194 e384404c orr r4, r4, #0x4C
00198 e1812400 orr r2, r1, r0, lsl #8
0019c e5d5100a ldrb r1, [r5, #0xA]
001a0 e5d5000b ldrb r0, [r5, #0xB]
001a4 e1823801 orr r3, r2, r1, lsl #16
001a8 e1831c00 orr r1, r3, r0, lsl #24
001ac e5841000 str r1, [r4]
; 159 : pDriverGlobals->eth.PpshHostAddr.wPort = pCfgData->PpshPort;
001b0 e3a02b22 mov r2, #0x22, 22
001b4 e5d5100c ldrb r1, [r5, #0xC]
001b8 e3822056 orr r2, r2, #0x56
001bc e5d5000d ldrb r0, [r5, #0xD]
001c0 e1811400 orr r1, r1, r0, lsl #8
001c4 e1c210b0 strh r1, [r2]
001c8 |$L37553|
; 160 : }
; 161 : if (pCfgData->Flags & EDBG_FL_KDBG)
001c8 e5d50000 ldrb r0, [r5]
001cc e3100004 tst r0, #4
001d0 0a000029 beq |$L37564|
; 162 : {
; 163 : EdbgOutputDebugString("Enabling KDBG over Ethernet, IP: %s, port:%u\n",
; 164 : inet_ntoa(pCfgData->KdbgIPAddr),ntohs(pCfgData->KdbgPort));
001d4 e5d5100e ldrb r1, [r5, #0xE]
001d8 e5d5000f ldrb r0, [r5, #0xF]
001dc e1812400 orr r2, r1, r0, lsl #8
001e0 e5d51010 ldrb r1, [r5, #0x10]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -