📄 cfw_platform.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Kernel\Hal\Common\.\cfw_platform.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
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 |??_C@_1BO@NFDEGLPL@?$AAI?$AAn?$AAi?$AAt?$AAC?$AAl?$AAo?$AAc?$AAk?$AA?4?$AA?4?$AA?4?$AA?$AN?$AA?6?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1EE@IILIFECD@?$AAP?$AAr?$AAo?$AAc?$AAe?$AAs?$AAs?$AAo?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AAM?$AAh?$AAz?$AA?0?$AA?5?$AAB@| [ DATA ] ; `string'
EXPORT |OEMInit|
IMPORT |DebugTimerInit|
IMPORT |OALCacheGlobalsInit|
IMPORT |GetBoardInformation|
IMPORT |idleconv|
IMPORT |InitClock|
IMPORT |OEMInitInterrupts|
IMPORT |InitDebugEther|
IMPORT |pTOC|
IMPORT |OEMQueryPerformanceFrequency|
IMPORT |OEMQueryPerformanceCounter|
IMPORT |pQueryPerformanceCounter|
IMPORT |pQueryPerformanceFrequency|
IMPORT |OEMPowerManagerInit|
IMPORT |NKDbgPrintfW|
IMPORT |dwNKDrWatsonSize|
IMPORT |lpWriteDebugStringFunc|
IMPORT |OEMInitDebugSerial|
IMPORT |OEMWriteDebugLED|
; File c:\wince500\platform\ep93xx\src\kernel\hal\common\cfw_platform.c
00000 AREA |.text| { |OEMInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMInit|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMInit| } ; comdat associative
|$T16640| DCD |$L16639|
DCD 0x40004001
00000 AREA |.rdata| { |??_C@_1EE@IILIFECD@?$AAP?$AAr?$AAo?$AAc?$AAe?$AAs?$AAs?$AAo?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AAM?$AAh?$AAz?$AA?0?$AA?5?$AAB@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EE@IILIFECD@?$AAP?$AAr?$AAo?$AAc?$AAe?$AAs?$AAs?$AAo?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AAM?$AAh?$AAz?$AA?0?$AA?5?$AAB@| DCB "P"
DCB 0x0, "r", 0x0, "o", 0x0, "c", 0x0, "e", 0x0, "s", 0x0, "s"
DCB 0x0, "o", 0x0, "r", 0x0, " ", 0x0, "=", 0x0, " ", 0x0, "%"
DCB 0x0, "d", 0x0, "M", 0x0, "h", 0x0, "z", 0x0, ",", 0x0, " "
DCB 0x0, "B", 0x0, "u", 0x0, "s", 0x0, " ", 0x0, "=", 0x0, " "
DCB 0x0, "%", 0x0, "d", 0x0, "M", 0x0, "h", 0x0, "z", 0x0, " "
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1BO@NFDEGLPL@?$AAI?$AAn?$AAi?$AAt?$AAC?$AAl?$AAo?$AAc?$AAk?$AA?4?$AA?4?$AA?4?$AA?$AN?$AA?6?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BO@NFDEGLPL@?$AAI?$AAn?$AAi?$AAt?$AAC?$AAl?$AAo?$AAc?$AAk?$AA?4?$AA?4?$AA?4?$AA?$AN?$AA?6?$AA?$AA@| DCB "I"
DCB 0x0, "n", 0x0, "i", 0x0, "t", 0x0, "C", 0x0, "l", 0x0, "o"
DCB 0x0, "c", 0x0, "k", 0x0, ".", 0x0, ".", 0x0, ".", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMInit| PROC
; 186 : {
00000 |$L16639|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M16637|
; 187 : fstemp *LogPtr;
; 188 :
; 189 :
; 190 : //
; 191 : // Set memory size for DrWatson kernel support
; 192 : //
; 193 : dwNKDrWatsonSize = 128 * 1024;
00004 e59f30f0 ldr r3, [pc, #0xF0]
00008 e3a02802 mov r2, #2, 16
0000c e5832000 str r2, [r3]
; 194 :
; 195 : //
; 196 : // Initialize the Global Cache.
; 197 : //
; 198 : OALCacheGlobalsInit();
00010 eb000000 bl OALCacheGlobalsInit
; 199 :
; 200 : //
; 201 : // Initialize the debug timer first.
; 202 : //
; 203 : DebugTimerInit();
00014 eb000000 bl DebugTimerInit
; 204 :
; 205 : //
; 206 : // Get the board information. Requires debug timer so we must put
; 207 : // it after getting the boardinformation.
; 208 : //
; 209 : GetBoardInformation();
00018 eb000000 bl GetBoardInformation
; 210 :
; 211 : //
; 212 : // Initialize the debug serial port.
; 213 : //
; 214 : OEMInitDebugSerial();
0001c eb000000 bl OEMInitDebugSerial
; 215 :
; 216 :
; 217 : #ifdef DEBUG
; 218 : //
; 219 : // Instead of calling OEMWriteDebugString directly, call through exported
; 220 : // function pointer. This will allow these messages to be seen if debug
; 221 : // message output is redirected to Ethernet or the parallel port.
; 222 : // Otherwise, lpWriteDebugStringFunc == OEMWriteDebugString.
; 223 : //
; 224 : lpWriteDebugStringFunc(TEXT("Windows CE Firmware Init\r\n"));
; 225 : #endif
; 226 : OEMWriteDebugLED(0, 0);
00020 e3a01000 mov r1, #0
00024 e3a00000 mov r0, #0
00028 eb000000 bl OEMWriteDebugLED
; 227 :
; 228 : //
; 229 : // Always boot from clean memory configuration.
; 230 : // This is a hack, but I want to make sure that memory is cleared before
; 231 : // booting.
; 232 : //
; 233 : LogPtr = (fstemp *)(pTOC->ulRAMFree | 0x20000000);
0002c e59f30c4 ldr r3, [pc, #0xC4]
; 234 : LogPtr->version = LogPtr->magic1 = LogPtr->magic2 = 0;
; 235 :
; 236 :
; 237 : //DEBUGMSG(1, (TEXT("Boot Args @0x%x, signature 0x%08x\r\n"),
; 238 : // pBootArgs, pBootArgs->dwSig));
; 239 :
; 240 : /*
; 241 : * Set up translation constant for GetIdleTime() (1 ms units).
; 242 : *
; 243 : * Note: Since curridlehigh, curridlelow is counting in ms, and
; 244 : * GetIdleTime() reports in ms, the conversion ratio is one. If
; 245 : * curridlehigh, curridlelow were using other units (like ticks),
; 246 : * then the conversion would be calculated from the clock frequency.
; 247 : */
; 248 : idleconv = 1;
; 249 :
; 250 : //dpCurSettings.ulZoneMask = 0x8100; //20 turn on loader zones
; 251 :
; 252 :
; 253 :
; 254 : /*
; 255 : * Initialize timer used for delays in the HAL.
; 256 : */
; 257 : #ifdef DEBUG
; 258 : lpWriteDebugStringFunc(TEXT("Initialize timer used for delays")
; 259 : TEXT("in the HAL\r\n"));
; 260 : #endif
; 261 :
; 262 : //
; 263 : // Start up the scheduling timer.
; 264 : //
; 265 : lpWriteDebugStringFunc(TEXT("InitClock...\r\n"));
00030 e59f10bc ldr r1, [pc, #0xBC]
00034 e59f20b4 ldr r2, [pc, #0xB4]
00038 e5933000 ldr r3, [r3]
0003c e3a05000 mov r5, #0
00040 e59f00a4 ldr r0, [pc, #0xA4]
00044 e5933018 ldr r3, [r3, #0x18]
00048 e3a04001 mov r4, #1
0004c e3833202 orr r3, r3, #2, 4
00050 e5835008 str r5, [r3, #8]
00054 e5835004 str r5, [r3, #4]
00058 e5835000 str r5, [r3]
0005c e5913000 ldr r3, [r1]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -