📄 idle.cod
字号:
00084 e5996000 ldr r6, [r9]
; 221 :
; 222 : //
; 223 : // Power down the clocks as much as possible.
; 224 : //
; 225 : *CSC_SYSLOCK = 0xAA;
; 226 : *CSC_PWRCNT = 0;
; 227 :
; 228 : *CSC_SYSLOCK = 0xAA;
; 229 : *CSC_DEVCFG = (ulCscDevCfg &
; 230 : ~(DEVCFG_KEYS | DEVCFG_ADCPD | DEVCFG_RAS |
; 231 : DEVCFG_TIN | DEVCFG_U1EN | DEVCFG_U2EN |
; 232 : DEVCFG_U3EN)) | DEVCFG_SHENA;
00088 e59f3190 ldr r3, [pc, #0x190]
0008c e584e000 str lr, [r4]
00090 e5882000 str r2, [r8]
00094 e0063003 and r3, r6, r3
; 233 :
; 234 : *CSC_SYSLOCK = 0xAA;
; 235 : *CSC_CLKSET2 = CLKSET2_VALUE & ~( CLKSET2_PLL2_EN | CLKSET2_PLL2_NBYP);
00098 e59f217c ldr r2, [pc, #0x17C]
0009c e3833001 orr r3, r3, #1
000a0 e584e000 str lr, [r4]
000a4 e5893000 str r3, [r9]
000a8 e584e000 str lr, [r4]
; 236 :
; 237 : *SDRAM_REFRESH = SDRAM_14MHZ_REFRESH_VALUE;
; 238 :
; 239 :
; 240 : *CSC_SYSLOCK = 0xAA;
; 241 : *CSC_CLKSET1 = CLKSET1_VALUE & ~CLKSET1_PLL1_NBYP;
000ac e59f3164 ldr r3, [pc, #0x164]
000b0 e58b2000 str r2, [r11]
000b4 e3a02070 mov r2, #0x70
000b8 e5812000 str r2, [r1]
000bc e584e000 str lr, [r4]
000c0 e5803000 str r3, [r0]
; 242 :
; 243 : //
; 244 : // Flush the pipeline.
; 245 : //
; 246 : __emit(0xe1a00000);
000c4 e1a00000 mov r0, r0
; 247 : __emit(0xe1a00000);
000c8 e1a00000 mov r0, r0
; 248 : __emit(0xe1a00000);
000cc e1a00000 mov r0, r0
; 249 : __emit(0xe1a00000);
000d0 e1a00000 mov r0, r0
; 250 : __emit(0xe1a00000);
000d4 e1a00000 mov r0, r0
; 251 : __emit(0xe1a00000);
000d8 e1a00000 mov r0, r0
000dc e3a02000 mov r2, #0
000e0 ea000001 b |$L14383|
000e4 |$L14509|
000e4 e59d7000 ldr r7, [sp]
000e8 e59d6000 ldr r6, [sp]
000ec |$L14383|
; 252 : }
; 253 :
; 254 :
; 255 : gfResumeFlag = FALSE;
000ec e59f5120 ldr r5, [pc, #0x120]
000f0 e5852000 str r2, [r5]
; 256 :
; 257 : INTERRUPTS_ON();
000f4 eb000000 bl INTERRUPTS_ON
; 258 :
; 259 : dwTimeValueWhenSuspend= *RTC_DR;// *TIM_DEBUGVALUELOW;
000f8 e3a0320b mov r3, #0xB, 4
000fc e3833892 orr r3, r3, #0x92, 16
00100 e5933000 ldr r3, [r3]
00104 e59f2104 ldr r2, [pc, #0x104]
00108 e5823000 str r3, [r2]
; 260 :
; 261 : while(!gfResumeFlag)
0010c ea000006 b |$L14400|
00110 |$L14397|
; 262 : {
; 263 :
; 264 : if(gulCS8950KitlUsed)
00110 e59a3000 ldr r3, [r10]
00114 e3530000 cmp r3, #0
00118 0a000002 beq |$L14399|
; 265 : {
; 266 : CPUEnterIdle(0);
0011c e3a00000 mov r0, #0
00120 eb000000 bl CPUEnterIdle
; 267 : }
; 268 : else
00124 ea000000 b |$L14400|
00128 |$L14399|
; 269 : {
; 270 : EnterStandbyMode( );
00128 eb000000 bl EnterStandbyMode
0012c |$L14400|
; 260 :
; 261 : while(!gfResumeFlag)
0012c e5953000 ldr r3, [r5]
00130 e3530000 cmp r3, #0
00134 0afffff5 beq |$L14397|
; 271 : //ulTemp = *CSC_STBY;
; 272 : }
; 273 : }
; 274 :
; 275 : INTERRUPTS_OFF();
00138 eb000000 bl INTERRUPTS_OFF
; 276 :
; 277 : //
; 278 : // Check to see if there is a kitl connection. If so then
; 279 : // keep the clocks on.
; 280 : //
; 281 : if(!gulCS8950KitlUsed)
0013c e59a3000 ldr r3, [r10]
00140 e3530000 cmp r3, #0
00144 1a000014 bne |$L14401|
; 282 : {
; 283 : //
; 284 : // Power down the system clocks here.
; 285 : //
; 286 : *CSC_SYSLOCK = 0xAA;
; 287 : *CSC_CLKSET1 = CLKSET1_VALUE;
00148 e59f30bc ldr r3, [pc, #0xBC]
0014c e59f20b4 ldr r2, [pc, #0xB4]
00150 e3a000aa mov r0, #0xAA
00154 e5840000 str r0, [r4]
00158 e5823000 str r3, [r2]
; 288 :
; 289 : //
; 290 : // Flush the pipeline.
; 291 : //
; 292 : __emit(0xe1a00000);
0015c e1a00000 mov r0, r0
; 293 : __emit(0xe1a00000);
00160 e1a00000 mov r0, r0
; 294 : __emit(0xe1a00000);
00164 e1a00000 mov r0, r0
; 295 : __emit(0xe1a00000);
00168 e1a00000 mov r0, r0
; 296 : __emit(0xe1a00000);
0016c e1a00000 mov r0, r0
; 297 : __emit(0xe1a00000);
00170 e1a00000 mov r0, r0
; 298 :
; 299 : *SDRAM_REFRESH = SDRAM_REFRESH_VALUE;
; 300 :
; 301 :
; 302 : *CSC_SYSLOCK = 0xAA;
; 303 : *CSC_CLKSET2 = CLKSET2_VALUE;
00174 e59f2088 ldr r2, [pc, #0x88]
00178 e59f3080 ldr r3, [pc, #0x80]
0017c e3a01fc6 mov r1, #0xC6, 30
00180 e5821000 str r1, [r2]
00184 e5840000 str r0, [r4]
00188 e58b3000 str r3, [r11]
; 304 :
; 305 : *CSC_SYSLOCK = 0xAA;
0018c e5840000 str r0, [r4]
; 306 : *CSC_DEVCFG = ulCscDevCfg;
00190 e5896000 str r6, [r9]
; 307 :
; 308 : *CSC_SYSLOCK = 0xAA;
00194 e5840000 str r0, [r4]
; 309 : *CSC_PWRCNT = ulCscPwrCnt;
00198 e5887000 str r7, [r8]
0019c |$L14401|
; 310 : }
; 311 :
; 312 : //
; 313 : // Restore the original interupt mask.
; 314 : //
; 315 : *VIC1_INTCLEAR = 0xFFFFFFFF;
; 316 : *VIC2_INTCLEAR = 0xFFFFFFFF;
; 317 : *VIC1_INTENABLE = gdwInterruptMask1 | INT1_TIMER1;
0019c e59f2058 ldr r2, [pc, #0x58]
001a0 e3e01000 mvn r1, #0
001a4 e59f304c ldr r3, [pc, #0x4C]
001a8 e5821000 str r1, [r2]
001ac e59f2040 ldr r2, [pc, #0x40]
001b0 e3e01000 mvn r1, #0
001b4 e5821000 str r1, [r2]
001b8 e5933000 ldr r3, [r3]
; 318 : *VIC2_INTENABLE = gdwInterruptMask2;
001bc e59f102c ldr r1, [pc, #0x2C]
001c0 e59f2024 ldr r2, [pc, #0x24]
001c4 e3833010 orr r3, r3, #0x10
001c8 e5813000 str r3, [r1]
001cc e5923000 ldr r3, [r2]
001d0 e59f2010 ldr r2, [pc, #0x10]
001d4 e5823000 str r3, [r2]
; 319 :
; 320 : INTERRUPTS_ON();
001d8 eb000000 bl INTERRUPTS_ON
; 321 : }
001dc e28dd004 add sp, sp, #4
001e0 e8bd4ff0 ldmia sp!, {r4 - r11, lr}
001e4 e12fff1e bx lr
001e8 |$L14518|
001e8 b00c0010 DCD 0xb00c0010
001ec 00000000 DCD |gdwInterruptMask2|
001f0 b00b0010 DCD 0xb00b0010
001f4 b00c0014 DCD 0xb00c0014
001f8 00000000 DCD |gdwInterruptMask1|
001fc b00b0014 DCD 0xb00b0014
00200 300dc317 DCD 0x300dc317
00204 b0060008 DCD 0xb0060008
00208 b0930020 DCD 0xb0930020
0020c 02a4a3d7 DCD 0x2a4a3d7
00210 00000000 DCD |dwTimeValueWhenSuspend|
00214 00000000 DCD |gfResumeFlag|
00218 0224a3d7 DCD 0x224a3d7
0021c 3001c317 DCD 0x3001c317
00220 fee9fff1 DCD 0xfee9fff1
00224 b0930024 DCD 0xb0930024
00228 b09300c0 DCD 0xb09300c0
0022c b0930080 DCD 0xb0930080
00230 b0930004 DCD 0xb0930004
00234 00000000 DCD |gdwInterruptWakeMask2|
00238 00000000 DCD |gulCS8950KitlUsed|
0023c 00000000 DCD |gdwInterruptWakeMask1|
00240 00000000 DCD |??_C@_1BM@FCDOICL@?$AAO?$AAE?$AAM?$AAP?$AAo?$AAw?$AAe?$AAr?$AAO?$AAf?$AAf?$AA?$AN?$AA?6?$AA?$AA@|
00244 |$M14514|
ENDP ; |OEMPowerOff|
EXPORT |OEMPowerManagerInit|
IMPORT |gfSysIntrWakeupMask|
00000 AREA |.text| { |OEMPowerManagerInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMPowerManagerInit|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMPowerManagerInit| } ; comdat associative
|$T14529| DCD |$L14528|
DCD 0x40001301
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMPowerManagerInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMPowerManagerInit| PROC
; 332 : {
00000 |$L14528|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M14526|
; 333 : int ulInt;
; 334 : for(ulInt = 0; ulInt < SYSINTR_MAXIMUM ; ulInt++)
00004 e59f103c ldr r1, [pc, #0x3C]
00008 e3a02000 mov r2, #0
0000c e3a0e000 mov lr, #0
00010 |$L14419|
; 335 : {
; 336 : gfSysIntrWakeupMask[ ulInt ] = 0;
00010 e0823001 add r3, r2, r1
00014 e2822001 add r2, r2, #1
00018 e3520048 cmp r2, #0x48
0001c e5c3e000 strb lr, [r3]
00020 bafffffa blt |$L14419|
; 337 : }
; 338 :
; 339 : //
; 340 : // Clear the interrupt wake mask
; 341 : //
; 342 : gdwInterruptWakeMask1 = 0 ;
00024 e59f3018 ldr r3, [pc, #0x18]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -