📄 main.cod
字号:
ENDP ; |EbootMain|
EXPORT |OEMDebugInit|
IMPORT |DebugTimerInit|
IMPORT |OEMPCMCIAInitialize|
IMPORT |OEMInitDebugSerial|
00000 AREA |.text| { |OEMDebugInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMDebugInit|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMDebugInit| } ; comdat associative
|$T37707| DCD |OEMDebugInit|
DCD 0x40000701
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMDebugInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMDebugInit| PROC
; 286 : {
00000 e52de004 str lr, [sp, #-4]!
00004 |$M37705|
; 287 : //
; 288 : // Initialize our debug UART.
; 289 : //
; 290 : OEMInitDebugSerial();
00004 eb000000 bl OEMInitDebugSerial
; 291 :
; 292 : //
; 293 : // Initialize the debug timer.
; 294 : //
; 295 : DebugTimerInit();
00008 eb000000 bl DebugTimerInit
; 296 :
; 297 : //
; 298 : // Initialize a PCMCIA card. Temporarily comment out.
; 299 : //
; 300 : OEMPCMCIAInitialize();
0000c eb000000 bl OEMPCMCIAInitialize
; 301 :
; 302 :
; 303 : return(TRUE);
00010 e3a00001 mov r0, #1
; 304 : }
00014 e8bd4000 ldmia sp!, {lr}
00018 e12fff1e bx lr
0001c |$M37706|
ENDP ; |OEMDebugInit|
EXPORT |??_C@_08LKFE@09?353?331?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0M@KPDK@Jan?520?52007?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0LE@EHGJ@?6?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN@| [ DATA ] ; `string'
EXPORT |??_C@_0DB@IBDB@Downloading?5BIN?5file?5using?5compa@| [ DATA ] ; `string'
EXPORT |??_C@_0CH@NKHJ@Downloading?5BIN?5file?5using?5Ether@| [ DATA ] ; `string'
EXPORT |OEMPlatformInit|
IMPORT |EbootEtherReadData|
IMPORT |OEMHDDPlatformInit|
IMPORT |OEMHDDPreDownload|
IMPORT |OEMHDDReadData|
IMPORT |OEMHDDDetect|
IMPORT |OEMEthPreDownload|
IMPORT |OEMEthHardwareInit|
00000 AREA |.text| { |OEMPlatformInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMPlatformInit|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMPlatformInit| } ; comdat associative
|$T37714| DCD |OEMPlatformInit|
DCD 0x40003901
00000 AREA |.rdata| { |??_C@_08LKFE@09?353?331?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_08LKFE@09?353?331?$AA@| DCB "09:53:31", 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0M@KPDK@Jan?520?52007?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0M@KPDK@Jan?520?52007?$AA@| DCB "Jan 20 2007", 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0LE@EHGJ@?6?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0LE@EHGJ@?6?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN@| DCB 0xa
DCB "========================================================"
DCB "====", 0xa, "EP931x Windows CE Ethernet Bootloader ", 0xa
DCB "(Built on %s %s)", 0xa, "==============================="
DCB "=============================", 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DB@IBDB@Downloading?5BIN?5file?5using?5compa@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DB@IBDB@Downloading?5BIN?5file?5using?5compa@| DCB "Downloading B"
DCB "IN file using compact flash card.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0CH@NKHJ@Downloading?5BIN?5file?5using?5Ether@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CH@NKHJ@Downloading?5BIN?5file?5using?5Ether@| DCB "Downloading B"
DCB "IN file using Ethernet.", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMPlatformInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMPlatformInit| PROC
; 316 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M37712|
; 317 : BOOL fRet = FALSE;
; 318 : UCHAR i = 0;
; 319 :
; 320 : EdbgOutputDebugString("\n============================================================\n"
; 321 : "EP931x Windows CE Ethernet Bootloader \n"
; 322 : "(Built on %s %s)"
; 323 : "\n============================================================\n",
; 324 : __DATE__, __TIME__);
00004 e59f20d4 ldr r2, [pc, #0xD4]
00008 e59f10cc ldr r1, [pc, #0xCC]
0000c e59f00c4 ldr r0, [pc, #0xC4]
00010 eb000000 bl EdbgOutputDebugString
; 325 :
; 326 : //
; 327 : // RLG temp.
; 328 : //
; 329 :
; 330 : #if 0
; 331 :
; 332 : //
; 333 : // Initiailize the parallel port
; 334 : //
; 335 : OEMInitParallelPort();
; 336 :
; 337 : //
; 338 : // Check to see if the parallel port is ready.
; 339 : //
; 340 : if (OEMIsParallelReady())
; 341 : {
; 342 : EdbgOutputDebugString("Downloading BIN file using parallel port.\r\n");
; 343 : pfnPlatformInit2 = NULL;
; 344 : pfnPreDownload = ParallelPreDownload;
; 345 : pfnReadData = ParallelPortRead;
; 346 : bEthLaunch = FALSE;
; 347 : fRet = TRUE;
; 348 : } else
; 349 : #endif // 0
; 350 : if(OEMHDDDetect())
00014 eb000000 bl OEMHDDDetect
00018 e3a04001 mov r4, #1
0001c e3500000 cmp r0, #0
00020 0a00000c beq |$L37609|
; 351 : {
; 352 : EdbgOutputDebugString("Downloading BIN file using compact flash card.\r\n");
00024 e59f00a8 ldr r0, [pc, #0xA8]
00028 eb000000 bl EdbgOutputDebugString
; 353 : pfnPlatformInit2 = OEMHDDPlatformInit;
0002c e59f308c ldr r3, [pc, #0x8C]
; 354 : pfnPreDownload = OEMHDDPreDownload;
00030 e59f0098 ldr r0, [pc, #0x98]
; 355 : pfnReadData = OEMHDDReadData;
00034 e59f1090 ldr r1, [pc, #0x90]
00038 e5830004 str r0, [r3, #4]
0003c e59f2084 ldr r2, [pc, #0x84]
; 356 : bEthLaunch = FALSE;
00040 e59f0064 ldr r0, [pc, #0x64]
00044 e5831008 str r1, [r3, #8]
00048 e3a01000 mov r1, #0
0004c e5832000 str r2, [r3]
00050 e5801000 str r1, [r0]
; 357 : fRet = TRUE;
; 358 : }
; 359 : else
00054 ea00000e b |$L37611|
00058 |$L37609|
; 360 : {
; 361 : EdbgOutputDebugString("Downloading BIN file using Ethernet.\r\n");
00058 e59f0064 ldr r0, [pc, #0x64]
0005c eb000000 bl EdbgOutputDebugString
; 362 : pfnPlatformInit2 = OEMEthHardwareInit;
00060 e59f3058 ldr r3, [pc, #0x58]
00064 e59f0050 ldr r0, [pc, #0x50]
; 363 : pfnPreDownload = OEMEthPreDownload;
00068 e59f1048 ldr r1, [pc, #0x48]
0006c e5830000 str r0, [r3]
; 364 : pfnReadData = EbootEtherReadData;
00070 e59f203c ldr r2, [pc, #0x3C]
00074 e5831004 str r1, [r3, #4]
; 365 :
; 366 : //
; 367 : // This tells the kernel to connect to the ethernet debugger.
; 368 : //
; 369 : pDriverGlobals->eth.EbootMagicNum = EBOOT_MAGIC_NUM;
00078 e3a01b22 mov r1, #0x22, 22
0007c e59f002c ldr r0, [pc, #0x2C]
00080 e5832008 str r2, [r3, #8]
00084 e5810000 str r0, [r1]
; 370 : bEthLaunch = TRUE;
00088 e59f001c ldr r0, [pc, #0x1C]
0008c e5932000 ldr r2, [r3]
00090 e5804000 str r4, [r0]
00094 |$L37611|
; 371 : fRet = TRUE;
; 372 : }
; 373 :
; 374 :
; 375 : //
; 376 : // Initialize ethernet.
; 377 : //
; 378 : if(pfnPlatformInit2)
00094 e3520000 cmp r2, #0
; 379 : pfnPlatformInit2();
00098 11a0e00f movne lr, pc
0009c 112fff12 bxne r2
; 380 :
; 381 :
; 382 : return(fRet);
000a0 e1a00004 mov r0, r4
; 383 : }
000a4 e8bd4010 ldmia sp!, {r4, lr}
000a8 e12fff1e bx lr
000ac |$L37716|
000ac 00000000 DCD |bEthLaunch|
000b0 45424f54 DCD 0x45424f54
000b4 00000000 DCD |EbootEtherReadData|
000b8 00000000 DCD |OEMEthPreDownload|
000bc 00000000 DCD |OEMEthHardwareInit|
000c0 00000000 DCD |pfnPlatformInit2|
000c4 00000000 DCD |??_C@_0CH@NKHJ@Downloading?5BIN?5file?5using?5Ether@|
000c8 00000000 DCD |OEMHDDPlatformInit|
000cc 00000000 DCD |OEMHDDReadData|
000d0 00000000 DCD |OEMHDDPreDownload|
000d4 00000000 DCD |??_C@_0DB@IBDB@Downloading?5BIN?5file?5using?5compa@|
000d8 00000000 DCD |??_C@_0LE@EHGJ@?6?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN@|
000dc 00000000 DCD |??_C@_0M@KPDK@Jan?520?52007?$AA@|
000e0 00000000 DCD |??_C@_08LKFE@09?353?331?$AA@|
000e4 |$M37713|
ENDP ; |OEMPlatformInit|
EXPORT |OEMPreDownload|
00000 AREA |.text| { |OEMPreDownload| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMPreDownload|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMPreDownload| } ; comdat associative
|$T37723| DCD |OEMPreDownload|
DCD 0x40000e01
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMPreDownload| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMPreDownload| PROC
; 393 : {
00000 e52de004 str lr, [sp, #-4]!
00004 |$M37721|
; 394 : DWORD dwReturnValue = BL_ERROR;
; 395 :
; 396 : //
; 397 : // Read the data in from the device.
; 398 : //
; 399 : if(pfnReadData)
00004 e59f1028 ldr r1, [pc, #0x28]
00008 e3e02000 mvn r2, #0
0000c e5910004 ldr r0, [r1, #4]
00010 e3500000 cmp r0, #0
00014 0a000003 beq |$L37617|
; 400 : dwReturnValue = pfnPreDownload();
00018 e5910000 ldr r0, [r1]
0001c e1a0e00f mov lr, pc
00020 e12fff10 bx r0
00024 e1a02000 mov r2, r0
00028 |$L37617|
; 401 :
; 402 : return dwReturnValue;
00028 e1a00002 mov r0, r2
; 403 : }
0002c e8bd4000 ldmia sp!, {lr}
00030 e12fff1e bx lr
00034 |$L37725|
00034 00000000 DCD |pfnPreDownload|
00038 |$M37722|
ENDP ; |OEMPreDownload|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -