📄 eeinfo.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Bootloader\Common\.\eeinfo.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.data|, DATA
COMMON |gBoardInformation|, 0x20
COMMON |gBoardInformationValid|, 0x4
COMMON |pTemp|, 0x2000
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 |GetBoardInformation|
EXPORT |??_C@_0BJ@JMNHHKIF@EEINFO?3?5EEInformation?4?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BP@DOCAFDDJ@EEINFO?3?50x?$CFx?50x?$CFx?50x?$CFx?50x?$CFx?4?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0CB@HOJDAEME@MAC?5Address?5?$DN?50x?$CFx?0?50x?$CFx?0?50x?$CFx?$AN?6@| [ DATA ] ; `string'
EXPORT |??_C@_0BC@ECDBGCHG@Board?5Name?5?$DN?5?$CFs?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_04GKLMKEAK@EMAC?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0CD@OFKMODLF@EEINFO?3?5SPI?5Device?5Not?5detected?4@| [ DATA ] ; `string'
IMPORT |EdbgOutputDebugString|
IMPORT |memcmp|
IMPORT |memset|
; File c:\wince500\platform\ep93xx\src\kernel\hal\common\eeinfo.c
00000 AREA |.text| { |GetBoardInformation| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$GetBoardInformation|, PDATA, SELECTION=5, ASSOC=|.text| { |GetBoardInformation| } ; comdat associative
|$T38292| DCD |$L38291|
DCD 0x40008e02
00000 AREA |.rdata| { |??_C@_0CD@OFKMODLF@EEINFO?3?5SPI?5Device?5Not?5detected?4@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CD@OFKMODLF@EEINFO?3?5SPI?5Device?5Not?5detected?4@| DCB "EEINFO:"
DCB " SPI Device Not detected.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_04GKLMKEAK@EMAC?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_04GKLMKEAK@EMAC?$AA@| DCB "EMAC", 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BC@ECDBGCHG@Board?5Name?5?$DN?5?$CFs?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BC@ECDBGCHG@Board?5Name?5?$DN?5?$CFs?$AN?6?$AA@| DCB "Board Name "
DCB "= %s", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0CB@HOJDAEME@MAC?5Address?5?$DN?50x?$CFx?0?50x?$CFx?0?50x?$CFx?$AN?6@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CB@HOJDAEME@MAC?5Address?5?$DN?50x?$CFx?0?50x?$CFx?0?50x?$CFx?$AN?6@| DCB "M"
DCB "AC Address = 0x%x, 0x%x, 0x%x", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BP@DOCAFDDJ@EEINFO?3?50x?$CFx?50x?$CFx?50x?$CFx?50x?$CFx?4?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BP@DOCAFDDJ@EEINFO?3?50x?$CFx?50x?$CFx?50x?$CFx?50x?$CFx?4?$AN?6?$AA@| DCB "E"
DCB "EINFO: 0x%x 0x%x 0x%x 0x%x.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BJ@JMNHHKIF@EEINFO?3?5EEInformation?4?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BJ@JMNHHKIF@EEINFO?3?5EEInformation?4?$AN?6?$AA@| DCB "EEINFO: EE"
DCB "Information.", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ods
00000 AREA |.text| { |GetBoardInformation| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |GetBoardInformation| PROC
; 75 : {
00000 |$L38291|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd020 sub sp, sp, #0x20
00008 |$M38289|
; 76 : BOOL bRet;
; 77 : PULONG pul;
; 78 : PUCHAR puc;
; 79 : ULONG ulTemp;
; 80 : // int x;
; 81 :
; 82 : //
; 83 : // Initialize the board information structure.
; 84 : //
; 85 : memset(&gBoardInformation, 0, sizeof(BOARD_INFO));
00008 e3a02020 mov r2, #0x20
0000c e3a01000 mov r1, #0
00010 e59f0208 ldr r0, [pc, #0x208]
00014 eb000000 bl memset
; 86 :
; 87 : //
; 88 : // Initialize the SPI device for reading the EEPROM.
; 89 : //
; 90 : InitializeSPI();
00018 eb000000 bl InitializeSPI
; 91 :
; 92 : //
; 93 : // Test the SPI device to make sure that it is an ATMEL
; 94 : //
; 95 : bRet = TestSPI();
0001c eb000000 bl TestSPI
00020 e58d0014 str r0, [sp, #0x14]
00024 e59d3014 ldr r3, [sp, #0x14]
00028 e58d3008 str r3, [sp, #8]
; 96 : if(bRet)
0002c e59d3008 ldr r3, [sp, #8]
00030 e3530000 cmp r3, #0
00034 0a000066 beq |$L38112|
; 97 : {
; 98 : bRet = ReadEEWord(0x1000, sizeof(BOARD_INFO), (PCHAR) &gBoardInformation);
00038 e59f21e0 ldr r2, [pc, #0x1E0]
0003c e3a01020 mov r1, #0x20
00040 e3a00a01 mov r0, #1, 20
00044 eb000000 bl ReadEEWord
00048 e58d0018 str r0, [sp, #0x18]
0004c e59d3018 ldr r3, [sp, #0x18]
00050 e58d3008 str r3, [sp, #8]
; 99 : pul = (PULONG) &gBoardInformation;
00054 e59f31c4 ldr r3, [pc, #0x1C4]
00058 e58d3004 str r3, [sp, #4]
; 100 :
; 101 : puc = (unsigned char *)pul;
0005c e59d3004 ldr r3, [sp, #4]
00060 e58d3010 str r3, [sp, #0x10]
; 102 : EdbgOutputDebugString( "EEINFO: EEInformation.\r\n");
00064 e59f01c8 ldr r0, [pc, #0x1C8]
00068 eb000000 bl EdbgOutputDebugString
; 103 : EdbgOutputDebugString( "EEINFO: 0x%x 0x%x 0x%x 0x%x.\r\n" , (ULONG) puc[0], (ULONG) puc[1], (ULONG) puc[2], (ULONG) puc[3]);
0006c e59d3010 ldr r3, [sp, #0x10]
00070 e2833003 add r3, r3, #3
00074 e5d33000 ldrb r3, [r3]
00078 e58d3000 str r3, [sp]
0007c e59d3010 ldr r3, [sp, #0x10]
00080 e2833002 add r3, r3, #2
00084 e5d33000 ldrb r3, [r3]
00088 e59d2010 ldr r2, [sp, #0x10]
0008c e2822001 add r2, r2, #1
00090 e5d22000 ldrb r2, [r2]
00094 e59d1010 ldr r1, [sp, #0x10]
00098 e5d11000 ldrb r1, [r1]
0009c e59f018c ldr r0, [pc, #0x18C]
000a0 eb000000 bl EdbgOutputDebugString
; 104 : EdbgOutputDebugString( "EEINFO: 0x%x 0x%x 0x%x 0x%x.\r\n" , (ULONG) puc[4], (ULONG) puc[5], (ULONG) puc[6], (ULONG) puc[7]);
000a4 e59d3010 ldr r3, [sp, #0x10]
000a8 e2833007 add r3, r3, #7
000ac e5d33000 ldrb r3, [r3]
000b0 e58d3000 str r3, [sp]
000b4 e59d3010 ldr r3, [sp, #0x10]
000b8 e2833006 add r3, r3, #6
000bc e5d33000 ldrb r3, [r3]
000c0 e59d2010 ldr r2, [sp, #0x10]
000c4 e2822005 add r2, r2, #5
000c8 e5d22000 ldrb r2, [r2]
000cc e59d1010 ldr r1, [sp, #0x10]
000d0 e2811004 add r1, r1, #4
000d4 e5d11000 ldrb r1, [r1]
000d8 e59f0150 ldr r0, [pc, #0x150]
000dc eb000000 bl EdbgOutputDebugString
; 105 : EdbgOutputDebugString( "EEINFO: 0x%x 0x%x 0x%x 0x%x.\r\n" , (ULONG) puc[8], (ULONG) puc[9], (ULONG) puc[10], (ULONG) puc[11]);
000e0 e59d3010 ldr r3, [sp, #0x10]
000e4 e283300b add r3, r3, #0xB
000e8 e5d33000 ldrb r3, [r3]
000ec e58d3000 str r3, [sp]
000f0 e59d3010 ldr r3, [sp, #0x10]
000f4 e283300a add r3, r3, #0xA
000f8 e5d33000 ldrb r3, [r3]
000fc e59d2010 ldr r2, [sp, #0x10]
00100 e2822009 add r2, r2, #9
00104 e5d22000 ldrb r2, [r2]
00108 e59d1010 ldr r1, [sp, #0x10]
0010c e2811008 add r1, r1, #8
00110 e5d11000 ldrb r1, [r1]
00114 e59f0114 ldr r0, [pc, #0x114]
00118 eb000000 bl EdbgOutputDebugString
; 106 : EdbgOutputDebugString( "EEINFO: 0x%x 0x%x 0x%x 0x%x.\r\n" , (ULONG) puc[12], (ULONG) puc[13], (ULONG) puc[14], (ULONG) puc[15]);
0011c e59d3010 ldr r3, [sp, #0x10]
00120 e283300f add r3, r3, #0xF
00124 e5d33000 ldrb r3, [r3]
00128 e58d3000 str r3, [sp]
0012c e59d3010 ldr r3, [sp, #0x10]
00130 e283300e add r3, r3, #0xE
00134 e5d33000 ldrb r3, [r3]
00138 e59d2010 ldr r2, [sp, #0x10]
0013c e282200d add r2, r2, #0xD
00140 e5d22000 ldrb r2, [r2]
00144 e59d1010 ldr r1, [sp, #0x10]
00148 e281100c add r1, r1, #0xC
0014c e5d11000 ldrb r1, [r1]
00150 e59f00d8 ldr r0, [pc, #0xD8]
00154 eb000000 bl EdbgOutputDebugString
; 107 :
; 108 : //
; 109 : // Mac Address.
; 110 : //
; 111 : EdbgOutputDebugString("MAC Address = 0x%x, 0x%x, 0x%x\r\n",
; 112 : (ULONG) gBoardInformation.MACAddress[0],
; 113 : (ULONG) gBoardInformation.MACAddress[1],
; 114 : (ULONG) gBoardInformation.MACAddress[2]);
00158 e59f30c0 ldr r3, [pc, #0xC0]
0015c e1d330b8 ldrh r3, [r3, #8]
00160 e59f20b8 ldr r2, [pc, #0xB8]
00164 e1d220b6 ldrh r2, [r2, #6]
00168 e59f10b0 ldr r1, [pc, #0xB0]
0016c e1d110b4 ldrh r1, [r1, #4]
00170 e59f00b4 ldr r0, [pc, #0xB4]
00174 eb000000 bl EdbgOutputDebugString
; 115 :
; 116 : EdbgOutputDebugString("Board Name = %s\r\n", gBoardInformation.strEdbgName);
00178 e59f30a0 ldr r3, [pc, #0xA0]
0017c e2831010 add r1, r3, #0x10
00180 e59f00a0 ldr r0, [pc, #0xA0]
00184 eb000000 bl EdbgOutputDebugString
; 117 :
; 118 : if(bRet && !memcmp(&gBoardInformation.strSignature,"EMAC", 4))
00188 e59d3008 ldr r3, [sp, #8]
0018c e3530000 cmp r3, #0
00190 0a00000b beq |$L38140|
00194 e3a02004 mov r2, #4
00198 e59f1084 ldr r1, [pc, #0x84]
0019c e59f007c ldr r0, [pc, #0x7C]
001a0 eb000000 bl memcmp
001a4 e58d001c str r0, [sp, #0x1C]
001a8 e59d301c ldr r3, [sp, #0x1C]
001ac e3530000 cmp r3, #0
001b0 1a000003 bne |$L38140|
; 119 : {
; 120 : gBoardInformationValid = TRUE;
001b4 e59f205c ldr r2, [pc, #0x5C]
001b8 e3a03001 mov r3, #1
001bc e5823000 str r3, [r2]
; 121 : }
; 122 : else
001c0 ea000002 b |$L38142|
001c4 |$L38140|
; 123 : {
; 124 : gBoardInformationValid = FALSE;
001c4 e59f204c ldr r2, [pc, #0x4C]
001c8 e3a03000 mov r3, #0
001cc e5823000 str r3, [r2]
001d0 |$L38142|
; 125 : }
; 126 : }
; 127 : else
001d0 ea000004 b |$L38143|
001d4 |$L38112|
; 128 : {
; 129 : EdbgOutputDebugString("EEINFO: SPI Device Not detected.\r\n");
001d4 e59f0040 ldr r0, [pc, #0x40]
001d8 eb000000 bl EdbgOutputDebugString
; 130 : gBoardInformationValid = FALSE;
001dc e59f2034 ldr r2, [pc, #0x34]
001e0 e3a03000 mov r3, #0
001e4 e5823000 str r3, [r2]
001e8 |$L38143|
; 131 : }
; 132 :
; 133 :
; 134 : //
; 135 : //Set GPIO pins 7 to disable the frame line.
; 136 : //
; 137 : ulTemp = *GPIO_PADR;
001e8 e3a03102 mov r3, #2, 2
001ec e3833721 orr r3, r3, #0x21, 14
001f0 e5933000 ldr r3, [r3]
001f4 e58d300c str r3, [sp, #0xC]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -