我弄了一个LED来调试,结果显示确实是进入了休眠模式,也能够唤醒,也能够判断GSTATUS2 来决定是否跳到WAKEUP_POWER_OFF处,从程序看进入这个里面后就是设置一些东西,然后从GSTATUS3 取出跳转的地址,最后进入Fw.s原来休眠的地方。但是现在从现象来看WINCE没有起来,只是电流大了,屏幕和休眠时一样胡乱的显示一些东西,代码如下:WAKEUP_POWER_OFF
;Release SCLKn after wake-up from the POWER_OFF mode.
ldr r0,=GPFDAT ;灯灭
ldr r1,=0x10
str r1,[r0]
ldr r1,=MISCCR
ldr r0,[r1]
bic r0,r0,#(7SCLK, SCKE->H
str r0,[r1]
;Set memory control registers
ldr r0,=SMRDATA
ldr r1,=BWSCON ;BWSCON Address
add r2, r0, #52 ;End address of SMRDATA
0
ldr r3, [r0], #4
str r3, [r1], #4
cmp r2, r0
bne %B0
mov r1,#256
0 subs r1,r1,#1 ;1) wait until the SelfRefresh is released.
bne %B0
ldr r1,=GSTATUS3 ;GSTATUS3 has the start address just after POWER_OFF wake-up
; mov r1,#0
ldr r0,[r1]
mov pc,r0
是不是我GSTATUS3 取出来的值不对呢?也就是说在休眠之前GSTATUS3 里没有保存正确的唤醒跳转地址