📄 main.cod
字号:
; 277 : // Common bootloader main routine.
; 278 : //
; 279 : BootloaderMain();
00010 eb000000 bl BootloaderMain
; 280 :
; 281 : //
; 282 : // Should never get here.
; 283 : //
; 284 : SpinForever();
00014 eb000000 bl SpinForever
; 285 : }
00018 e49de004 ldr lr, [sp], #4
0001c e12fff1e bx lr
00020 |$M39533|
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
|$T39543| DCD |$L39542|
DCD 0x40000b02
; Function compile flags: /Ods
00000 AREA |.text| { |OEMDebugInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMDebugInit| PROC
; 294 : {
00000 |$L39542|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd004 sub sp, sp, #4
00008 |$M39540|
; 295 : //
; 296 : // Initialize our debug UART.
; 297 : //
; 298 : OEMInitDebugSerial();
00008 eb000000 bl OEMInitDebugSerial
; 299 :
; 300 : //
; 301 : // Initialize the debug timer.
; 302 : //
; 303 : DebugTimerInit();
0000c eb000000 bl DebugTimerInit
; 304 :
; 305 : //
; 306 : // Initialize a PCMCIA card. Temporarily comment out.
; 307 : //
; 308 : OEMPCMCIAInitialize();
00010 eb000000 bl OEMPCMCIAInitialize
; 309 :
; 310 :
; 311 : return(TRUE);
00014 e3a03001 mov r3, #1
00018 e58d3000 str r3, [sp]
0001c e59d0000 ldr r0, [sp]
; 312 : }
00020 e28dd004 add sp, sp, #4
00024 e49de004 ldr lr, [sp], #4
00028 e12fff1e bx lr
0002c |$M39541|
ENDP ; |OEMDebugInit|
EXPORT |OEMPlatformInit|
EXPORT |??_C@_08NEBCJKIB@11?341?349?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0M@FEJFCMGF@Jan?521?52008?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0LE@IEBEGHND@?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@GHABIIAO@Downloading?5BIN?5file?5using?5Hard?5@| [ DATA ] ; `string'
EXPORT |??_C@_0CH@DBOPFGJJ@Downloading?5BIN?5file?5using?5Ether@| [ DATA ] ; `string'
IMPORT |OEMHDDPlatformInit|
IMPORT |OEMHDDPreDownload|
IMPORT |OEMHDDReadData|
IMPORT |OEMHDDDetect|
IMPORT |OEMEthPreDownload|
IMPORT |OEMEthHardwareInit|
IMPORT |EbootEtherReadData|
00000 AREA |.text| { |OEMPlatformInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMPlatformInit|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMPlatformInit| } ; comdat associative
|$T39551| DCD |$L39550|
DCD 0x40005102
00000 AREA |.rdata| { |??_C@_0CH@DBOPFGJJ@Downloading?5BIN?5file?5using?5Ether@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CH@DBOPFGJJ@Downloading?5BIN?5file?5using?5Ether@| DCB "Downloadi"
DCB "ng BIN file using Ethernet.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DB@GHABIIAO@Downloading?5BIN?5file?5using?5Hard?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DB@GHABIIAO@Downloading?5BIN?5file?5using?5Hard?5@| DCB "Download"
DCB "ing BIN file using Hard Drive/CF card.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0LE@IEBEGHND@?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@IEBEGHND@?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@_0M@FEJFCMGF@Jan?521?52008?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0M@FEJFCMGF@Jan?521?52008?$AA@| DCB "Jan 21 2008", 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_08NEBCJKIB@11?341?349?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_08NEBCJKIB@11?341?349?$AA@| DCB "11:41:49", 0x0 ; `string'
; Function compile flags: /Ods
00000 AREA |.text| { |OEMPlatformInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMPlatformInit| PROC
; 324 : {
00000 |$L39550|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd010 sub sp, sp, #0x10
00008 |$M39548|
; 325 : BOOL fRet = FALSE;
00008 e3a03000 mov r3, #0
0000c e58d3004 str r3, [sp, #4]
; 326 : UCHAR i = 0;
00010 e3a03000 mov r3, #0
00014 e5cd3000 strb r3, [sp]
; 327 :
; 328 : EdbgOutputDebugString("\n============================================================\n"
; 329 : "EP931x Windows CE Ethernet Bootloader \n"
; 330 : "(Built on %s %s)"
; 331 : "\n============================================================\n",
; 332 : __DATE__, __TIME__);
00018 e59f2120 ldr r2, [pc, #0x120]
0001c e59f1118 ldr r1, [pc, #0x118]
00020 e59f0110 ldr r0, [pc, #0x110]
00024 eb000000 bl EdbgOutputDebugString
; 333 :
; 334 : //
; 335 : // RLG temp.
; 336 : //
; 337 :
; 338 : #if 0
; 339 : //
; 340 : // Initiailize the parallel port
; 341 : //
; 342 : OEMInitParallelPort();
; 343 :
; 344 : //
; 345 : // Check to see if the parallel port is ready.
; 346 : //
; 347 : if (OEMIsParallelReady())
; 348 : {
; 349 : EdbgOutputDebugString("Downloading BIN file using parallel port.\r\n");
; 350 : pfnPlatformInit2 = NULL;
; 351 : pfnPreDownload = ParallelPreDownload;
; 352 : pfnReadData = ParallelPortRead;
; 353 : bEthLaunch = FALSE;
; 354 : fRet = TRUE;
; 355 : } else
; 356 : #endif // 0
; 357 : #if (defined EDB9307_12_15 )||( defined EDB9315A )
; 358 : if(OEMHDDDetect())
00028 eb000000 bl OEMHDDDetect
0002c e58d000c str r0, [sp, #0xC]
00030 e59d300c ldr r3, [sp, #0xC]
00034 e3530000 cmp r3, #0
00038 0a000010 beq |$L39449|
; 359 : {
; 360 : EdbgOutputDebugString("Downloading BIN file using Hard Drive/CF card.\r\n");
0003c e59f00f0 ldr r0, [pc, #0xF0]
00040 eb000000 bl EdbgOutputDebugString
; 361 : pfnPlatformInit2 = OEMHDDPlatformInit;
00044 e59f20e4 ldr r2, [pc, #0xE4]
00048 e59f30b4 ldr r3, [pc, #0xB4]
0004c e5832000 str r2, [r3]
; 362 : pfnPreDownload = OEMHDDPreDownload;
00050 e59f20d4 ldr r2, [pc, #0xD4]
00054 e59f30bc ldr r3, [pc, #0xBC]
00058 e5832000 str r2, [r3]
; 363 : pfnReadData = OEMHDDReadData;
0005c e59f20c4 ldr r2, [pc, #0xC4]
00060 e59f30a8 ldr r3, [pc, #0xA8]
00064 e5832000 str r2, [r3]
; 364 : bEthLaunch = FALSE;
00068 e59f2098 ldr r2, [pc, #0x98]
0006c e3a03000 mov r3, #0
00070 e5823000 str r3, [r2]
; 365 : fRet = TRUE;
00074 e3a03001 mov r3, #1
00078 e58d3004 str r3, [sp, #4]
; 366 : }
; 367 : else
0007c ea000012 b |$L39451|
00080 |$L39449|
; 368 : #endif
; 369 : {
; 370 : EdbgOutputDebugString("Downloading BIN file using Ethernet.\r\n");
00080 e59f009c ldr r0, [pc, #0x9C]
00084 eb000000 bl EdbgOutputDebugString
; 371 : pfnPlatformInit2 = OEMEthHardwareInit;
00088 e59f2090 ldr r2, [pc, #0x90]
0008c e59f3070 ldr r3, [pc, #0x70]
00090 e5832000 str r2, [r3]
; 372 : pfnPreDownload = OEMEthPreDownload;
00094 e59f2080 ldr r2, [pc, #0x80]
00098 e59f3078 ldr r3, [pc, #0x78]
0009c e5832000 str r2, [r3]
; 373 : pfnReadData = EbootEtherReadData;
000a0 e59f206c ldr r2, [pc, #0x6C]
000a4 e59f3064 ldr r3, [pc, #0x64]
000a8 e5832000 str r2, [r3]
; 374 :
; 375 : //
; 376 : // This tells the kernel to connect to the ethernet debugger.
; 377 : //
; 378 : pDriverGlobals->eth.EbootMagicNum = EBOOT_MAGIC_NUM;
000ac e3a02b22 mov r2, #0x22, 22
000b0 e59f3054 ldr r3, [pc, #0x54]
000b4 e5823000 str r3, [r2]
; 379 : bEthLaunch = TRUE;
000b8 e59f2048 ldr r2, [pc, #0x48]
000bc e3a03001 mov r3, #1
000c0 e5823000 str r3, [r2]
; 380 : fRet = TRUE;
000c4 e3a03001 mov r3, #1
000c8 e58d3004 str r3, [sp, #4]
000cc |$L39451|
; 381 : }
; 382 :
; 383 :
; 384 : //
; 385 : // Initialize ethernet.
; 386 : //
; 387 : if(pfnPlatformInit2)
000cc e59f3030 ldr r3, [pc, #0x30]
000d0 e5933000 ldr r3, [r3]
000d4 e3530000 cmp r3, #0
000d8 0a000003 beq |$L39454|
; 388 : pfnPlatformInit2();
000dc e59f3020 ldr r3, [pc, #0x20]
000e0 e5933000 ldr r3, [r3]
000e4 e1a0e00f mov lr, pc
000e8 e12fff13 bx r3
000ec |$L39454|
; 389 :
; 390 :
; 391 : return(fRet);
000ec e59d3004 ldr r3, [sp, #4]
000f0 e58d3008 str r3, [sp, #8]
000f4 e59d0008 ldr r0, [sp, #8]
; 392 : }
000f8 e28dd010 add sp, sp, #0x10
000fc e49de004 ldr lr, [sp], #4
00100 e12fff1e bx lr
00104 |$L39553|
00104 00000000 DCD |pfnPlatformInit2|
00108 00000000 DCD |bEthLaunch|
0010c 45424f54 DCD 0x45424f54
00110 00000000 DCD |pfnReadData|
00114 00000000 DCD |EbootEtherReadData|
00118 00000000 DCD |pfnPreDownload|
0011c 00000000 DCD |OEMEthPreDownload|
00120 00000000 DCD |OEMEthHardwareInit|
00124 00000000 DCD |??_C@_0CH@DBOPFGJJ@Downloading?5BIN?5file?5using?5Ether@|
00128 00000000 DCD |OEMHDDReadData|
0012c 00000000 DCD |OEMHDDPreDownload|
00130 00000000 DCD |OEMHDDPlatformInit|
00134 00000000 DCD |??_C@_0DB@GHABIIAO@Downloading?5BIN?5file?5using?5Hard?5@|
00138 00000000 DCD |??_C@_0LE@IEBEGHND@?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@|
0013c 00000000 DCD |??_C@_0M@FEJFCMGF@Jan?521?52008?$AA@|
00140 00000000 DCD |??_C@_08NEBCJKIB@11?341?349?$AA@|
00144 |$M39549|
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
|$T39560| DCD |$L39559|
DCD 0x40001702
; Function compile flags: /Ods
00000 AREA |.text| { |OEMPreDownload| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMPreDownload| PROC
; 402 : {
00000 |$L39559|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd00c sub sp, sp, #0xC
00008 |$M39557|
; 403 : DWORD dwReturnValue = BL_ERROR;
00008 e3e03000 mvn r3, #0
0000c e58d3000 str r3, [sp]
; 404 :
; 405 : //
; 406 : // Read the data in from the device.
; 407 : //
; 408 : if(pfnReadData)
00010 e59f3040 ldr r3, [pc, #0x40]
00014 e5933000 ldr r3, [r3]
00018 e3530000 cmp r3, #0
0001c 0a000006 beq |$L39457|
; 409 : dwReturnValue = pfnPreDownload();
00020 e59f302c ldr r3, [pc, #0x2C]
00024 e5933000 ldr r3, [r3]
00028 e1a0e00f mov lr, pc
0002c e12fff13 bx r3
00030 e58d0008 str r0, [sp, #8]
00034 e59d3008 ldr r3, [sp, #8]
00038 e58d3000 str r3, [sp]
0003c |$L39457|
; 410 :
; 411 : return dwReturnValue;
0003c e59d3000 ldr r3, [sp]
00040 e58d3004 str r3, [sp, #4]
00044 e59d0004 ldr r0, [sp, #4]
; 412 : }
00048 e28dd00c add sp, sp, #0xC
0004c e49de004 ldr lr, [sp], #4
00050 e12fff1e bx lr
00054 |$L39562|
00054 00000000 DCD |pfnPreDownload|
00058 00000000 DCD |pfnReadData|
0005c |$M39558|
ENDP ; |OEMPreDownload|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -