4430|21

88

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于WINCE下电源管理问题,请教各位 [复制链接]

1、我的电源管理用到两个表:充电表(即当外接电源插入时调用)
                           放电表(即用电池时调用)
   但我发现放电时电池的放电曲线是类似线性的下降
   可是充电时充电曲线不是线性的,而是电压上升了一会就下降了一会,类似梯形方波
   不知道各位做过电源管理的是怎么处理这里的?是不是也是遇到我这种问题

2、我已经把 “控制面板”->“电源”->“方案”中的“将状态切换为挂起”、
   写死为“从不”
   所以我的PDA需要深度休眠只能通过按休眠按键(我这里定义的深度休眠是指CPU休眠,而不是背光休眠)
   
   但是偶尔会出现过了一段时间背光先关掉了,然后自动进入CPU休眠状态,这时只能通过按休眠键才唤醒,这是我不希望看到的
   
   不知道为什么会出现这个现象

最新回复

uiopp  详情 回复 发表于 2009-2-15 12:36
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
ding
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
好像放电和充电都不是线性的,这个你找个做电池的人了解一下,他们最清楚。

控制面板中的东西,其实只是设置了注册表,具体怎么处理,还要看你的电源管理驱动。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
充放电曲线可以向电池供应商要的,没有一个是线性的吧

但是偶尔会出现过了一段时间背光先关掉了,然后自动进入CPU休眠状态,这时只能通过按休眠键才唤醒,这是我不希望看到的
正常情况下是由PM来管理系统的状态切换的,默认设定是支持你的要求的,但为什么偶尔会进Suspend,必须要跟踪分析代码来查看,会不会有别的线程在更改系统状态,还是有修改过PM的代码?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
看打印信息
是当背光休眠时很长时间后调用了pmgr.c中的:OEMPowerOff函数
但是现在找不到是哪里调用了这个函数
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
ding
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
充电放电表问题已经解决了
但是系统自动休眠还是没找到问题出在哪
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

8
 
OEMPowerOff一般是由PM代码来调用的
可以把PM的Debug Message打开来看一看,相关代码在Public下面
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

9
 
PM的Debug Message?请问在Public下的哪里

GwesPowerOffSystem();这个函数最后也会调用OEMPowerOff的吧?

这个函数是我主动调用的(在按键休眠和低电休眠里面),

我现在能做的只能是在这个GwesPowerOffSystem();函数前加一条打印信息,

其他还有哪个函数会调用OEMPowerOff呢 ??

我的是WINCE42版本的,不知道电源管理这块是不是跟WINCE50下的不一样?

更艰难的问题是:这种情况不是每次开机等待就会出现的,这种情况出现也很偶然,想查的时候它就不出现





 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 
4.2下面的PM没有研究过,我说的是5.0及以上的
在5.0及以上的版本中GwesPowerOffSystem()一般已经不再使用了
5.0下PM的代码在public/common/oak/drivers/pm下面吧,你可以在4.2下面查查看看,5.0下面最终在Release目录下面会有一个pm.dll,这就是最终生成的PM驱动
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

11
 

我现在在我的BSP下,
调用GwesPowerOffSystem这个函数之前的地方

添加了一条打印信息

但是发现, 自然进入休眠状态时并不打印这条信息

说明应该不是BSP下这个GwesPowerOffSystem函数被意外调用了
(在我的BSP下只有两个地方调用了这个函数:一个是在按键休眠处,另一个是低电处理那里)

可是如果是系统异常调用了GwesPowerOffSystem或者OEMPowerOff这两个函数也查不到啊??

hzdysymbol大侠有什么好方法吗??
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

12
 
是不是有什么地方调用了SetSystemPowerState
这个函数也可以让系统进Suspended。
SetSystemPowerState (NULL,POWER_STATE_SUSPEND,POWER_FORCE) or
SetSystemPowerState (NULL,POWER_STATE_OFF, POWER_FORCE) or
SetSystemPowerState (NULL,POWER_STATE_CRITICAL, POWER_FORCE) or
SetSystemPowerState (L"suspend", 0, 0);
调这些都有这种可能。

楼主可以按照hzdysymbol的建议,看下PM的log
在如果是PM要求进的Suspeded的话,应该在\public\common
\oak\drivers\pm\pdd\pda下的Platform.cpp的
PlatformSetSystemPowerState函数里的PowerOffSystem前能看到
log。但不知楼主的PM策略是不是使用的Public下的PDA这一套



 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

13
 
路过 学习
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

14
 
很好
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

15
 
路过。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

16
 
把系统里的所有别的驱动拿掉看看,只留Lcd,backlight,然后再看看系统会不会有问题?
没有问题再一个个加回去

再一个就是要想办法把这问题复制出来,这样就容易查了

因为我对4。2不熟悉,所以也没有什么特别好的思路
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

17
 
vvvvvvvvvvvvvvvvvvv
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

18
 
vvvvvvvvvxcccccccccccccccc
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

19
 
ffffffffffffffffffffff
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(中级)

20
 
楼上怎么搞的,这么会被封杀ID的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表