📄 ether.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Bootloader\Common\.\ether.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.bss|, NOINIT
|pfnEDbgInit| % 0x4
|pfnEDbgInitDMA| % 0x4
|pfnEDbgGetFrame| % 0x4
|pfnEDbgSendFrame| % 0x4
|MyAddr| % 0xc
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 |OEMEthGetFrame|
; File c:\wince500\platform\ep93xx\src\bootloader\common\ether.c
00000 AREA |.text| { |OEMEthGetFrame| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthGetFrame|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthGetFrame| } ; comdat associative
|$T39494| DCD |$L39493|
DCD 0x40001b04
; Function compile flags: /Ods
00000 AREA |.text| { |OEMEthGetFrame| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthGetFrame| PROC
; 88 : {
00000 |$L39493|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd008 sub sp, sp, #8
00010 |$M39491|
; 89 : if (pfnEDbgGetFrame)
00010 e59f3050 ldr r3, [pc, #0x50]
00014 e5933000 ldr r3, [r3]
00018 e3530000 cmp r3, #0
0001c 0a00000b beq |$L39383|
; 90 : return(pfnEDbgGetFrame(pData, pwLength));
00020 e59d1014 ldr r1, [sp, #0x14]
00024 e59d0010 ldr r0, [sp, #0x10]
00028 e59f3038 ldr r3, [pc, #0x38]
0002c e5933000 ldr r3, [r3]
00030 e1a0e00f mov lr, pc
00034 e12fff13 bx r3
00038 e1a03800 mov r3, r0, lsl #16
0003c e1a03823 mov r3, r3, lsr #16
00040 e1cd30b4 strh r3, [sp, #4]
00044 e1dd30b4 ldrh r3, [sp, #4]
00048 e58d3000 str r3, [sp]
0004c ea000001 b |$L39382|
00050 |$L39383|
; 91 :
; 92 : return(FALSE);
00050 e3a03000 mov r3, #0
00054 e58d3000 str r3, [sp]
00058 |$L39382|
; 90 : return(pfnEDbgGetFrame(pData, pwLength));
00058 e59d0000 ldr r0, [sp]
; 93 : }
0005c e28dd008 add sp, sp, #8
00060 e89d6000 ldmia sp, {sp, lr}
00064 e12fff1e bx lr
00068 |$L39496|
00068 00000000 DCD |pfnEDbgGetFrame|
0006c |$M39492|
ENDP ; |OEMEthGetFrame|
EXPORT |OEMEthSendFrame|
EXPORT |??_C@_0CL@HFNGJLGH@ERROR?3?5OEMEthSendFrame?5failure?0?5@| [ DATA ] ; `string'
IMPORT |EdbgOutputDebugString|
00000 AREA |.text| { |OEMEthSendFrame| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthSendFrame|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthSendFrame| } ; comdat associative
|$T39503| DCD |$L39502|
DCD 0x40002704
00000 AREA |.rdata| { |??_C@_0CL@HFNGJLGH@ERROR?3?5OEMEthSendFrame?5failure?0?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CL@HFNGJLGH@ERROR?3?5OEMEthSendFrame?5failure?0?5@| DCB "ERROR: O"
DCB "EMEthSendFrame failure, retry %u", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ods
00000 AREA |.text| { |OEMEthSendFrame| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthSendFrame| PROC
; 109 : {
00000 |$L39502|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd00c sub sp, sp, #0xC
00010 |$M39500|
; 110 : int retries = 0;
00010 e3a03000 mov r3, #0
00014 e58d3000 str r3, [sp]
00018 |$L39391|
; 111 :
; 112 : // Let's be persistant here
; 113 : while (retries++ < 4)
00018 e59d3000 ldr r3, [sp]
0001c e3530004 cmp r3, #4
00020 e59d3000 ldr r3, [sp]
00024 e2833001 add r3, r3, #1
00028 e58d3000 str r3, [sp]
0002c aa000012 bge |$L39392|
; 114 : {
; 115 : if (!pfnEDbgSendFrame(pData, dwLength))
00030 e59d1018 ldr r1, [sp, #0x18]
00034 e59d0014 ldr r0, [sp, #0x14]
00038 e59f3058 ldr r3, [pc, #0x58]
0003c e5933000 ldr r3, [r3]
00040 e1a0e00f mov lr, pc
00044 e12fff13 bx r3
00048 e1a03800 mov r3, r0, lsl #16
0004c e1a03823 mov r3, r3, lsr #16
00050 e1cd30b8 strh r3, [sp, #8]
00054 e1dd30b8 ldrh r3, [sp, #8]
00058 e3530000 cmp r3, #0
0005c 1a000002 bne |$L39393|
; 116 : {
; 117 : return TRUE;
00060 e3a03001 mov r3, #1
00064 e58d3004 str r3, [sp, #4]
00068 ea000005 b |$L39388|
0006c |$L39393|
; 118 : }
; 119 : else
; 120 : {
; 121 : EdbgOutputDebugString("ERROR: OEMEthSendFrame failure, retry %u\r\n", retries);
0006c e59d1000 ldr r1, [sp]
00070 e59f001c ldr r0, [pc, #0x1C]
00074 eb000000 bl EdbgOutputDebugString
; 122 : }
; 123 : }
00078 eaffffe6 b |$L39391|
0007c |$L39392|
; 124 : return(FALSE);
0007c e3a03000 mov r3, #0
00080 e58d3004 str r3, [sp, #4]
00084 |$L39388|
; 116 : {
; 117 : return TRUE;
00084 e59d0004 ldr r0, [sp, #4]
; 125 : }
00088 e28dd00c add sp, sp, #0xC
0008c e89d6000 ldmia sp, {sp, lr}
00090 e12fff1e bx lr
00094 |$L39505|
00094 00000000 DCD |??_C@_0CL@HFNGJLGH@ERROR?3?5OEMEthSendFrame?5failure?0?5@|
00098 00000000 DCD |pfnEDbgSendFrame|
0009c |$M39501|
ENDP ; |OEMEthSendFrame|
EXPORT |OEMEthHardwareInit|
EXPORT |??_C@_06PJNFHFFO@NE2000?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_06HMPOGANI@CS8950?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0DB@BDHKKPD@ERROR?3?5Failed?5to?5Initialize?5CS89@| [ DATA ] ; `string'
EXPORT |??_C@_0CG@LLNPEPJJ@ERROR?3?5Unable?5to?5find?5network?5ca@| [ DATA ] ; `string'
EXPORT |??_C@_0CC@IMFFEGPA@Card?5Type?5?$DN?5?$CFs?0?5Address?5?$DN?50x?$CFx?4?$AN@| [ DATA ] ; `string'
EXPORT |??_C@_0CD@PPGFAPPG@ERROR?3?5Failed?5to?5initialize?5NIC?4@| [ DATA ] ; `string'
IMPORT |CS8950Init|
IMPORT |CS8950GetFrame|
IMPORT |CS8950SendFrame|
IMPORT |CS8950WriteEEPROM|
IMPORT |CS8950DMAInit|
IMPORT |GetBoardInformation|
IMPORT |GetDeviceMacAddress|
IMPORT |OEMNE2000Detect|
IMPORT |NE2000Init|
IMPORT |NE2000GetFrame|
IMPORT |NE2000SendFrame|
00000 AREA |.text| { |OEMEthHardwareInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthHardwareInit|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthHardwareInit| } ; comdat associative
|$T39512| DCD |$L39511|
DCD 0x40009302
00000 AREA |.rdata| { |??_C@_0CD@PPGFAPPG@ERROR?3?5Failed?5to?5initialize?5NIC?4@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CD@PPGFAPPG@ERROR?3?5Failed?5to?5initialize?5NIC?4@| DCB "ERROR: "
DCB "Failed to initialize NIC.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0CC@IMFFEGPA@Card?5Type?5?$DN?5?$CFs?0?5Address?5?$DN?50x?$CFx?4?$AN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CC@IMFFEGPA@Card?5Type?5?$DN?5?$CFs?0?5Address?5?$DN?50x?$CFx?4?$AN@| DCB "C"
DCB "ard Type = %s, Address = 0x%x.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0CG@LLNPEPJJ@ERROR?3?5Unable?5to?5find?5network?5ca@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CG@LLNPEPJJ@ERROR?3?5Unable?5to?5find?5network?5ca@| DCB "ERROR: "
DCB "Unable to find network card.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DB@BDHKKPD@ERROR?3?5Failed?5to?5Initialize?5CS89@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DB@BDHKKPD@ERROR?3?5Failed?5to?5Initialize?5CS89@| DCB "ERROR: Fa"
DCB "iled to Initialize CS8950 DMA buffer.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_06HMPOGANI@CS8950?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_06HMPOGANI@CS8950?$AA@| DCB "CS8950", 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_06PJNFHFFO@NE2000?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -