📄 oempreinit.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Bootloader\Common\.\oempreinit.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |SysconSetup|
; File c:\wince500\platform\ep93xx\src\kernel\hal\common\oempreinit.c
00000 AREA |.text| { |SysconSetup| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SysconSetup|, PDATA, SELECTION=5, ASSOC=|.text| { |SysconSetup| } ; comdat associative
|$T330| DCD |$L329|
DCD 0x40004300
; Function compile flags: /Ods
00000 AREA |.text| { |SysconSetup| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SysconSetup| PROC
; 37 : {
00000 |$L329|
00000 |$M327|
; 38 : //
; 39 : // Disable the watchdog timer.
; 40 : //
; 41 : *WATCHDOG_WDCONTROL = WDCONTROL_DISABLE;
00000 e3a03102 mov r3, #2, 2
00004 e3832725 orr r2, r3, #0x25, 14
00008 e3a03caa mov r3, #0xAA, 24
0000c e3833055 orr r3, r3, #0x55
00010 e5823000 str r3, [r2]
; 42 :
; 43 : //
; 44 : // Program the processor/bus clock rate.
; 45 : //
; 46 : *CSC_SYSLOCK = 0xAA;
00014 e59f20c4 ldr r2, [pc, #0xC4]
00018 e3a030aa mov r3, #0xAA
0001c e5823000 str r3, [r2]
; 47 : *CSC_CLKSET1 = CLKSET1_VALUE;
00020 e59f20e0 ldr r2, [pc, #0xE0]
00024 e59f30d8 ldr r3, [pc, #0xD8]
00028 e5823000 str r3, [r2]
; 48 :
; 49 : //
; 50 : // Flush the pipeline.
; 51 : //
; 52 : __emit(0xe1a00000);
0002c e1a00000 mov r0, r0
; 53 : __emit(0xe1a00000);
00030 e1a00000 mov r0, r0
; 54 : __emit(0xe1a00000);
00034 e1a00000 mov r0, r0
; 55 : __emit(0xe1a00000);
00038 e1a00000 mov r0, r0
; 56 : __emit(0xe1a00000);
0003c e1a00000 mov r0, r0
; 57 : __emit(0xe1a00000);
00040 e1a00000 mov r0, r0
; 58 :
; 59 : //
; 60 : // Configure PLL2 in order to generate a solid 48Mhz clock for USB.
; 61 : //
; 62 : *CSC_SYSLOCK = 0xAA;
00044 e59f2094 ldr r2, [pc, #0x94]
00048 e3a030aa mov r3, #0xAA
0004c e5823000 str r3, [r2]
; 63 : *CSC_CLKSET2 = CLKSET2_VALUE;
00050 e59f20a8 ldr r2, [pc, #0xA8]
00054 e59f30a0 ldr r3, [pc, #0xA0]
00058 e5823000 str r3, [r2]
; 64 :
; 65 : //
; 66 : // Enable all of the UARTS and the math coprocessor.
; 67 : //
; 68 : *CSC_SYSLOCK = 0xAA;
0005c e59f207c ldr r2, [pc, #0x7C]
00060 e3a030aa mov r3, #0xAA
00064 e5823000 str r3, [r2]
; 69 :
; 70 : *CSC_DEVCFG = DEVCFG_U1EN | DEVCFG_U2EN | DEVCFG_U3EN | DEVCFG_TIN | DEVCFG_SHENA
; 71 : #ifndef EDB9301_02
; 72 : //
; 73 : // Trun off IrDA on UART2 because EDB9301/02 have not implement it.
; 74 : //
; 75 : // | DEVCFG_IONU2
; 76 : #endif
; 77 : #ifdef EP93XX_CRUNCH
; 78 : |DEVCFG_CPENA
; 79 : #endif
; 80 : ;
00068 e59f2088 ldr r2, [pc, #0x88]
0006c e59f3080 ldr r3, [pc, #0x80]
00070 e5823000 str r3, [r2]
; 81 :
; 82 : //
; 83 : // Change the Bus master register to use bus priority 2 so that raster is stable.
; 84 : // This also puts dma at the top so audio does not break up.
; 85 : //
; 86 : *CSC_SYSLOCK = 0xAA;
00074 e59f2064 ldr r2, [pc, #0x64]
00078 e3a030aa mov r3, #0xAA
0007c e5823000 str r3, [r2]
; 87 : *CSC_BMAR = 2;
00080 e59f2068 ldr r2, [pc, #0x68]
00084 e3a03002 mov r3, #2
00088 e5823000 str r3, [r2]
; 88 :
; 89 : //
; 90 : // Program the sdram refresh to a new value.
; 91 : //
; 92 : *SDRAM_REFRESH = SDRAM_REFRESH_VALUE;
0008c e59f2058 ldr r2, [pc, #0x58]
00090 e3a03fc6 mov r3, #0xC6, 30
00094 e5823000 str r3, [r2]
; 93 :
; 94 : //
; 95 : // Program the power control register to use all dma channels.
; 96 : //
; 97 : //ulPwrcnt = *CSC_PWRCNT;
; 98 : *CSC_SYSLOCK = 0xAA;
00098 e59f2040 ldr r2, [pc, #0x40]
0009c e3a030aa mov r3, #0xAA
000a0 e5823000 str r3, [r2]
; 99 : *CSC_PWRCNT = PWRCNT_DMAM2MCH0 | PWRCNT_DMAM2PCH1 | PWRCNT_DMAM2PCH0 ;
000a4 e59f203c ldr r2, [pc, #0x3C]
000a8 e3a03301 mov r3, #1, 6
000ac e3833803 orr r3, r3, #3, 16
000b0 e5823000 str r3, [r2]
; 100 :
; 101 : // PWRCNT_DMAM2PCH3 | PWRCNT_DMAM2PCH2 | PWRCNT_DMAM2PCH5 |
; 102 : // PWRCNT_DMAM2PCH4 | PWRCNT_DMAM2PCH7 | PWRCNT_DMAM2PCH6 |
; 103 : // PWRCNT_DMAM2PCH9 | PWRCNT_DMAM2PCH8;
; 104 :
; 105 : //
; 106 : // Program up the SSP register.
; 107 : //
; 108 : *SPI_CPSR = 2;
000b4 e59f2028 ldr r2, [pc, #0x28]
000b8 e3a03002 mov r3, #2
000bc e5823000 str r3, [r2]
; 109 :
; 110 :
; 111 : //
; 112 : // Program the Touch Screen enable register.
; 113 : //
; 114 : *CSC_SYSLOCK = 0xAA;
000c0 e59f2018 ldr r2, [pc, #0x18]
000c4 e3a030aa mov r3, #0xAA
000c8 e5823000 str r3, [r2]
; 115 : *CSC_KTDIV = KTDIV_TSEN;
000cc e59f2008 ldr r2, [pc, #8]
000d0 e3a03102 mov r3, #2, 2
000d4 e5823000 str r3, [r2]
; 116 :
; 117 : }
000d8 e12fff1e bx lr
000dc |$L332|
000dc 80930090 DCD 0x80930090
000e0 809300c0 DCD 0x809300c0
000e4 808a0010 DCD 0x808a0010
000e8 80930004 DCD 0x80930004
000ec 80060008 DCD 0x80060008
000f0 80930054 DCD 0x80930054
000f4 01160001 DCD 0x1160001
000f8 80930080 DCD 0x80930080
000fc 300dc317 DCD 0x300dc317
00100 80930024 DCD 0x80930024
00104 02a4a3d7 DCD 0x2a4a3d7
00108 80930020 DCD 0x80930020
0010c |$M328|
ENDP ; |SysconSetup|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -