用的BSP包是WINCE42下的那个Bvdmain (优龙的开发板)
Bootloader是ADS1.2编译的那个,而不是EBOOT
现在的现像是,我能休眠,也能通过触发GPIO1唤醒
唤醒后可以通过打印信息看到进入了各个驱动的XXX_PowerUp函数
但是唤醒后就死机了
我已经在XllpPmEnterSleep加了SDRAM的自刷新代码
更奇怪的是,通过打印信息可以看到,唤醒后居然又调了一次XllpLCDInit(P_XLLP_LCD_T pXllpLCD)这个函数
而我在BSP和BOOT中搜索每次调用XllpLCDInit这个函数的地方,并在调用XllpLCDInit之前加打印信息
居然没有信息出现,就是不知道是哪个函数调用了这个本地函数(区别于系统函数)我也没找到有任何地方将XllpLCDInit导出
可是,就是调用了这个函数,并且调用完了就死机了
以下是打印信息:
GP1 Irq+++!!!!+++ --------------------按下GPIO1,中断触发
o Waitfor! ---------------------触发中断绑定的事件,并进入到WaitForSingleObject后面
power sleep now ---------------------马上调用GewsOEMPowerOff
OEM ---------------------进入了OEMPowerOff ,并打印信息OEMPowerOff
(休眠了没有打印完全),完成休眠动作
XllpLCDInit is running!. ---------------------按下GPIO1系统被唤醒,居然首先调用了XllpLCDInit
XllpLCDInit is running!::step 1 !!
LTM035A776C init.
XllpLCDInit is running!::step 2 !!
XllpLCDInit is running!::step 3 !!
XllpLCDInit is running!::step 4 !!
XllpLCDInit is running!::step 5 !!
power resume now --------------------这个是我在调用GewsOEMPowerOff后面加的函数
Done GP1 Irq --------------------然后调用了InterruptDone(SYSINTR_POWER)
死机了。。。。。。。。。。。。。。
对了我已经把大部分驱动都删除了,只剩下LCD,TOUCH,和一些产生LIB的函数
并且将所有驱动中的XXX_PowerUp中的内容都删除掉了....
请各位指点一下!!!
5 个解决方案
#1
#2
如你所说“BSP和BOOT中搜索每次调用XllpLCDInit这个函数的地方,并在调用XllpLCDInit之前加打印信息
居然没有信息出现”
所以首先要确定你加的打印信息是否编译使用了
另外就可能是程序飞到那地方了,程序跑飞了,
居然没有信息出现”
所以首先要确定你加的打印信息是否编译使用了
另外就可能是程序飞到那地方了,程序跑飞了,
#3
通过编译一个debug版本,可以看到如下打印信息:
......
0x9a4cd4cc: Oom App Wait 8000 (dec ms)
0x9a4cd4cc: Oom AutoOom 0
0x9a4cd4cc: UpdateIdleTimeoutFromRegistry
GP1 Irq -------------------------------我按下GPIO1 ,开始休眠
0x9a5eaa40: KeyPowerThread goto Waitfor!
0x9a5eaa40: Done GP1 Irq
GP1 Irq -------------------------------可能是键盘有抖动
0x9a5eaa40: KeyPowerThread gGP1 Irq
oto Waitfor!
0x9a5eaa40: power sleep now ------------------进入休眠(调用的GwesOEMPowerOff)
0x9a5eaa40: FS: Got Power notif 0x00000002
0x9a5eaa40: FSREG: Registry flush unnecessary
0x9a5eaa40: FSRAM: Flushing cached file data
0x9a5eaa40: Powering Off system:
0x9a5eaa40: Calling GWES power proc.
0x9a5eaa40: Calling device manager power proc.
0x9a5eaa40: PowerKey :: PWk_PowerDown is running!!
0x9a5eaa40: Calling OEMPowerOff...
OEMPowerOff+++++ -------------------这里进入XllpPmEnterSleep 休眠
-这两句打印信息之间是XllpPmEnterSleep ()函数-----------------------------------------
OEMPowerOff----- -------------------再次按下GPIO1,系统唤醒
0x9a5eaa40: Back from OEMPowerOff
0x9a5eaa40: Calling device manager power proc.
0x9a5eaa40: PowerKey :: PWk_PowerUp is running!!
0x9a5eaa40: Calling GWES power proc.
0x9a5eaa40: ADD XllpLCD init for this! 是GWES调用的XllpLCDInit
0x9a5eaa40: LTM035A776C init.
0x9a5eaa40: XllpLCDInit is running!
0x9a5eaa40: Returning to normally scheduled programming.
0x9a434634: ndisMResetCompleteStage2: Internal reset
0x9a5eaa40: FS: Got Power notif 0x00000001
0x9a5eaa40: Back from PowerOffSystem.
0x9a5eaa40: power sleep Resume now 被唤醒
0x9a5eaa40: Done GP1 Irq 调用InterruptDone处理中断
..................现在就开始死机了,点屏,按键都没什么反应
但是过了几秒后
0x9a4dc3f4: FS: Got Power notif 0x00000002 ------又自己进入到休眠中
0x9a4dc3f4: FSREG: Registry flush unnecessary
0x9a4dc3f4: FSRAM: Flushing cached file data
0x9a4dc3f4: Powering Off system:
0x9a4dc3f4: Calling GWES power proc.
0x9a4dc3f4: Calling device manager power proc.
0x9a4dc3f4: PowerKey :: PWk_PowerDown is running!!
0x9a4dc3f4: Calling OEMPowerOff...
OEMPowerOff+++++ ---------------------又休眠了
我再次按下GPIO1
OEMPowerOff----- -------------------------又被唤醒
0x9a4dc3f4: Back from OEMPowerOff
0x9a4dc3f4: Calling device manager power proc.
0x9a4dc3f4: PowerKey :: PWk_PowerUp is running!!
0x9a4dc3f4: Calling GWES power proc.
0x9a4dc3f4: ADD XllpLCD init for this!
0x9a4dc3f4: LTM035A776C init.
0x9a4dc3f4: XllpLCDInit is running!
0x9a4dc3f4: Returning to normally scheduled programming.
0x9a434634: ndisMResetCompleteStage2: Internal reset
0x9a4dc3f4: FS: Got Power notif 0x00000001
0x9a4dc3f4: Back from PowerOffSystem. ---------被唤醒,但是系统任何输入到不能执行
........过了一会又休眠..........
......
0x9a4cd4cc: Oom App Wait 8000 (dec ms)
0x9a4cd4cc: Oom AutoOom 0
0x9a4cd4cc: UpdateIdleTimeoutFromRegistry
GP1 Irq -------------------------------我按下GPIO1 ,开始休眠
0x9a5eaa40: KeyPowerThread goto Waitfor!
0x9a5eaa40: Done GP1 Irq
GP1 Irq -------------------------------可能是键盘有抖动
0x9a5eaa40: KeyPowerThread gGP1 Irq
oto Waitfor!
0x9a5eaa40: power sleep now ------------------进入休眠(调用的GwesOEMPowerOff)
0x9a5eaa40: FS: Got Power notif 0x00000002
0x9a5eaa40: FSREG: Registry flush unnecessary
0x9a5eaa40: FSRAM: Flushing cached file data
0x9a5eaa40: Powering Off system:
0x9a5eaa40: Calling GWES power proc.
0x9a5eaa40: Calling device manager power proc.
0x9a5eaa40: PowerKey :: PWk_PowerDown is running!!
0x9a5eaa40: Calling OEMPowerOff...
OEMPowerOff+++++ -------------------这里进入XllpPmEnterSleep 休眠
-这两句打印信息之间是XllpPmEnterSleep ()函数-----------------------------------------
OEMPowerOff----- -------------------再次按下GPIO1,系统唤醒
0x9a5eaa40: Back from OEMPowerOff
0x9a5eaa40: Calling device manager power proc.
0x9a5eaa40: PowerKey :: PWk_PowerUp is running!!
0x9a5eaa40: Calling GWES power proc.
0x9a5eaa40: ADD XllpLCD init for this! 是GWES调用的XllpLCDInit
0x9a5eaa40: LTM035A776C init.
0x9a5eaa40: XllpLCDInit is running!
0x9a5eaa40: Returning to normally scheduled programming.
0x9a434634: ndisMResetCompleteStage2: Internal reset
0x9a5eaa40: FS: Got Power notif 0x00000001
0x9a5eaa40: Back from PowerOffSystem.
0x9a5eaa40: power sleep Resume now 被唤醒
0x9a5eaa40: Done GP1 Irq 调用InterruptDone处理中断
..................现在就开始死机了,点屏,按键都没什么反应
但是过了几秒后
0x9a4dc3f4: FS: Got Power notif 0x00000002 ------又自己进入到休眠中
0x9a4dc3f4: FSREG: Registry flush unnecessary
0x9a4dc3f4: FSRAM: Flushing cached file data
0x9a4dc3f4: Powering Off system:
0x9a4dc3f4: Calling GWES power proc.
0x9a4dc3f4: Calling device manager power proc.
0x9a4dc3f4: PowerKey :: PWk_PowerDown is running!!
0x9a4dc3f4: Calling OEMPowerOff...
OEMPowerOff+++++ ---------------------又休眠了
我再次按下GPIO1
OEMPowerOff----- -------------------------又被唤醒
0x9a4dc3f4: Back from OEMPowerOff
0x9a4dc3f4: Calling device manager power proc.
0x9a4dc3f4: PowerKey :: PWk_PowerUp is running!!
0x9a4dc3f4: Calling GWES power proc.
0x9a4dc3f4: ADD XllpLCD init for this!
0x9a4dc3f4: LTM035A776C init.
0x9a4dc3f4: XllpLCDInit is running!
0x9a4dc3f4: Returning to normally scheduled programming.
0x9a434634: ndisMResetCompleteStage2: Internal reset
0x9a4dc3f4: FS: Got Power notif 0x00000001
0x9a4dc3f4: Back from PowerOffSystem. ---------被唤醒,但是系统任何输入到不能执行
........过了一会又休眠..........
#4
请问这个是什么原因啊??
#5
#1
#2
如你所说“BSP和BOOT中搜索每次调用XllpLCDInit这个函数的地方,并在调用XllpLCDInit之前加打印信息
居然没有信息出现”
所以首先要确定你加的打印信息是否编译使用了
另外就可能是程序飞到那地方了,程序跑飞了,
居然没有信息出现”
所以首先要确定你加的打印信息是否编译使用了
另外就可能是程序飞到那地方了,程序跑飞了,
#3
通过编译一个debug版本,可以看到如下打印信息:
......
0x9a4cd4cc: Oom App Wait 8000 (dec ms)
0x9a4cd4cc: Oom AutoOom 0
0x9a4cd4cc: UpdateIdleTimeoutFromRegistry
GP1 Irq -------------------------------我按下GPIO1 ,开始休眠
0x9a5eaa40: KeyPowerThread goto Waitfor!
0x9a5eaa40: Done GP1 Irq
GP1 Irq -------------------------------可能是键盘有抖动
0x9a5eaa40: KeyPowerThread gGP1 Irq
oto Waitfor!
0x9a5eaa40: power sleep now ------------------进入休眠(调用的GwesOEMPowerOff)
0x9a5eaa40: FS: Got Power notif 0x00000002
0x9a5eaa40: FSREG: Registry flush unnecessary
0x9a5eaa40: FSRAM: Flushing cached file data
0x9a5eaa40: Powering Off system:
0x9a5eaa40: Calling GWES power proc.
0x9a5eaa40: Calling device manager power proc.
0x9a5eaa40: PowerKey :: PWk_PowerDown is running!!
0x9a5eaa40: Calling OEMPowerOff...
OEMPowerOff+++++ -------------------这里进入XllpPmEnterSleep 休眠
-这两句打印信息之间是XllpPmEnterSleep ()函数-----------------------------------------
OEMPowerOff----- -------------------再次按下GPIO1,系统唤醒
0x9a5eaa40: Back from OEMPowerOff
0x9a5eaa40: Calling device manager power proc.
0x9a5eaa40: PowerKey :: PWk_PowerUp is running!!
0x9a5eaa40: Calling GWES power proc.
0x9a5eaa40: ADD XllpLCD init for this! 是GWES调用的XllpLCDInit
0x9a5eaa40: LTM035A776C init.
0x9a5eaa40: XllpLCDInit is running!
0x9a5eaa40: Returning to normally scheduled programming.
0x9a434634: ndisMResetCompleteStage2: Internal reset
0x9a5eaa40: FS: Got Power notif 0x00000001
0x9a5eaa40: Back from PowerOffSystem.
0x9a5eaa40: power sleep Resume now 被唤醒
0x9a5eaa40: Done GP1 Irq 调用InterruptDone处理中断
..................现在就开始死机了,点屏,按键都没什么反应
但是过了几秒后
0x9a4dc3f4: FS: Got Power notif 0x00000002 ------又自己进入到休眠中
0x9a4dc3f4: FSREG: Registry flush unnecessary
0x9a4dc3f4: FSRAM: Flushing cached file data
0x9a4dc3f4: Powering Off system:
0x9a4dc3f4: Calling GWES power proc.
0x9a4dc3f4: Calling device manager power proc.
0x9a4dc3f4: PowerKey :: PWk_PowerDown is running!!
0x9a4dc3f4: Calling OEMPowerOff...
OEMPowerOff+++++ ---------------------又休眠了
我再次按下GPIO1
OEMPowerOff----- -------------------------又被唤醒
0x9a4dc3f4: Back from OEMPowerOff
0x9a4dc3f4: Calling device manager power proc.
0x9a4dc3f4: PowerKey :: PWk_PowerUp is running!!
0x9a4dc3f4: Calling GWES power proc.
0x9a4dc3f4: ADD XllpLCD init for this!
0x9a4dc3f4: LTM035A776C init.
0x9a4dc3f4: XllpLCDInit is running!
0x9a4dc3f4: Returning to normally scheduled programming.
0x9a434634: ndisMResetCompleteStage2: Internal reset
0x9a4dc3f4: FS: Got Power notif 0x00000001
0x9a4dc3f4: Back from PowerOffSystem. ---------被唤醒,但是系统任何输入到不能执行
........过了一会又休眠..........
......
0x9a4cd4cc: Oom App Wait 8000 (dec ms)
0x9a4cd4cc: Oom AutoOom 0
0x9a4cd4cc: UpdateIdleTimeoutFromRegistry
GP1 Irq -------------------------------我按下GPIO1 ,开始休眠
0x9a5eaa40: KeyPowerThread goto Waitfor!
0x9a5eaa40: Done GP1 Irq
GP1 Irq -------------------------------可能是键盘有抖动
0x9a5eaa40: KeyPowerThread gGP1 Irq
oto Waitfor!
0x9a5eaa40: power sleep now ------------------进入休眠(调用的GwesOEMPowerOff)
0x9a5eaa40: FS: Got Power notif 0x00000002
0x9a5eaa40: FSREG: Registry flush unnecessary
0x9a5eaa40: FSRAM: Flushing cached file data
0x9a5eaa40: Powering Off system:
0x9a5eaa40: Calling GWES power proc.
0x9a5eaa40: Calling device manager power proc.
0x9a5eaa40: PowerKey :: PWk_PowerDown is running!!
0x9a5eaa40: Calling OEMPowerOff...
OEMPowerOff+++++ -------------------这里进入XllpPmEnterSleep 休眠
-这两句打印信息之间是XllpPmEnterSleep ()函数-----------------------------------------
OEMPowerOff----- -------------------再次按下GPIO1,系统唤醒
0x9a5eaa40: Back from OEMPowerOff
0x9a5eaa40: Calling device manager power proc.
0x9a5eaa40: PowerKey :: PWk_PowerUp is running!!
0x9a5eaa40: Calling GWES power proc.
0x9a5eaa40: ADD XllpLCD init for this! 是GWES调用的XllpLCDInit
0x9a5eaa40: LTM035A776C init.
0x9a5eaa40: XllpLCDInit is running!
0x9a5eaa40: Returning to normally scheduled programming.
0x9a434634: ndisMResetCompleteStage2: Internal reset
0x9a5eaa40: FS: Got Power notif 0x00000001
0x9a5eaa40: Back from PowerOffSystem.
0x9a5eaa40: power sleep Resume now 被唤醒
0x9a5eaa40: Done GP1 Irq 调用InterruptDone处理中断
..................现在就开始死机了,点屏,按键都没什么反应
但是过了几秒后
0x9a4dc3f4: FS: Got Power notif 0x00000002 ------又自己进入到休眠中
0x9a4dc3f4: FSREG: Registry flush unnecessary
0x9a4dc3f4: FSRAM: Flushing cached file data
0x9a4dc3f4: Powering Off system:
0x9a4dc3f4: Calling GWES power proc.
0x9a4dc3f4: Calling device manager power proc.
0x9a4dc3f4: PowerKey :: PWk_PowerDown is running!!
0x9a4dc3f4: Calling OEMPowerOff...
OEMPowerOff+++++ ---------------------又休眠了
我再次按下GPIO1
OEMPowerOff----- -------------------------又被唤醒
0x9a4dc3f4: Back from OEMPowerOff
0x9a4dc3f4: Calling device manager power proc.
0x9a4dc3f4: PowerKey :: PWk_PowerUp is running!!
0x9a4dc3f4: Calling GWES power proc.
0x9a4dc3f4: ADD XllpLCD init for this!
0x9a4dc3f4: LTM035A776C init.
0x9a4dc3f4: XllpLCDInit is running!
0x9a4dc3f4: Returning to normally scheduled programming.
0x9a434634: ndisMResetCompleteStage2: Internal reset
0x9a4dc3f4: FS: Got Power notif 0x00000001
0x9a4dc3f4: Back from PowerOffSystem. ---------被唤醒,但是系统任何输入到不能执行
........过了一会又休眠..........
#4
请问这个是什么原因啊??