📄 oempreinit.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Kernel\Hal\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
|$T409| DCD |$L408|
DCD 0x40003a01
; Function compile flags: /Ogsy
00000 AREA |.text| { |SysconSetup| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SysconSetup| PROC
; 37 : {
00000 |$L408|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M406|
; 38 : //
; 39 : // Disable the watchdog timer.
; 40 : //
; 41 : *WATCHDOG_WDCONTROL = WDCONTROL_DISABLE;
; 42 :
; 43 : //
; 44 : // Program the processor/bus clock rate.
; 45 : //
; 46 : *CSC_SYSLOCK = 0xAA;
; 47 : *CSC_CLKSET1 = CLKSET1_VALUE;
00004 e59fe0d8 ldr lr, [pc, #0xD8]
00008 e3a02102 mov r2, #2, 2
0000c e3a03caa mov r3, #0xAA, 24
00010 e59f00c8 ldr r0, [pc, #0xC8]
00014 e59f10c0 ldr r1, [pc, #0xC0]
00018 e3822725 orr r2, r2, #0x25, 14
0001c e3833055 orr r3, r3, #0x55
00020 e3a050aa mov r5, #0xAA
00024 e5823000 str r3, [r2]
00028 e58e5000 str r5, [lr]
0002c e5801000 str r1, [r0]
; 48 :
; 49 : //
; 50 : // Flush the pipeline.
; 51 : //
; 52 : __emit(0xe1a00000);
00030 e1a00000 mov r0, r0
; 53 : __emit(0xe1a00000);
00034 e1a00000 mov r0, r0
; 54 : __emit(0xe1a00000);
00038 e1a00000 mov r0, r0
; 55 : __emit(0xe1a00000);
0003c e1a00000 mov r0, r0
; 56 : __emit(0xe1a00000);
00040 e1a00000 mov r0, r0
; 57 : __emit(0xe1a00000);
00044 e1a00000 mov r0, r0
; 58 :
; 59 : //
; 60 : // Configure PLL2 in order to generate a solid 48Mhz clock for USB.
; 61 : //
; 62 : *CSC_SYSLOCK = 0xAA;
; 63 : *CSC_CLKSET2 = CLKSET2_VALUE;
00048 e59f2088 ldr r2, [pc, #0x88]
0004c e59f3080 ldr r3, [pc, #0x80]
; 64 :
; 65 : //
; 66 : // Enable all of the UARTS and the math coprocessor.
; 67 : //
; 68 : *CSC_SYSLOCK = 0xAA;
; 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 : ;
00050 e59f0078 ldr r0, [pc, #0x78]
00054 e59f1070 ldr r1, [pc, #0x70]
00058 e58e5000 str r5, [lr]
0005c 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;
; 87 : *CSC_BMAR = 2;
00060 e59f3060 ldr r3, [pc, #0x60]
; 88 :
; 89 : //
; 90 : // Program the sdram refresh to a new value.
; 91 : //
; 92 : *SDRAM_REFRESH = SDRAM_REFRESH_VALUE;
00064 e59f2058 ldr r2, [pc, #0x58]
00068 e58e5000 str r5, [lr]
0006c e5801000 str r1, [r0]
00070 e3a04002 mov r4, #2
00074 e58e5000 str r5, [lr]
; 93 :
; 94 : //
; 95 : // Program the power control register to use all dma channels.
; 96 : //
; 97 : //ulPwrcnt = *CSC_PWRCNT;
; 98 : *CSC_SYSLOCK = 0xAA;
; 99 : *CSC_PWRCNT = PWRCNT_DMAM2MCH0 | PWRCNT_DMAM2PCH1 | PWRCNT_DMAM2PCH0 ;
00078 e59f1040 ldr r1, [pc, #0x40]
0007c e5834000 str r4, [r3]
00080 e3a00fc6 mov r0, #0xC6, 30
00084 e3a03301 mov r3, #1, 6
00088 e5820000 str r0, [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;
0008c e59f2028 ldr r2, [pc, #0x28]
00090 e3833803 orr r3, r3, #3, 16
00094 e58e5000 str r5, [lr]
00098 e5813000 str r3, [r1]
; 109 :
; 110 :
; 111 : //
; 112 : // Program the Touch Screen enable register.
; 113 : //
; 114 : *CSC_SYSLOCK = 0xAA;
; 115 : *CSC_KTDIV = KTDIV_TSEN;
0009c e59f3014 ldr r3, [pc, #0x14]
000a0 e5824000 str r4, [r2]
000a4 e3a02102 mov r2, #2, 2
000a8 e58e5000 str r5, [lr]
000ac e5832000 str r2, [r3]
; 116 :
; 117 : }
000b0 e8bd4030 ldmia sp!, {r4, r5, lr}
000b4 e12fff1e bx lr
000b8 |$L411|
000b8 80930090 DCD 0x80930090
000bc 808a0010 DCD 0x808a0010
000c0 80930004 DCD 0x80930004
000c4 80060008 DCD 0x80060008
000c8 80930054 DCD 0x80930054
000cc 01160001 DCD 0x1160001
000d0 80930080 DCD 0x80930080
000d4 300dc317 DCD 0x300dc317
000d8 80930024 DCD 0x80930024
000dc 02a4a3d7 DCD 0x2a4a3d7
000e0 80930020 DCD 0x80930020
000e4 809300c0 DCD 0x809300c0
000e8 |$M407|
ENDP ; |SysconSetup|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -