CE下电源管理问题,请教

yangliu   2009-12-16 11:09 楼主
以前一直用一个自己写的简单的电源管理只处理背光、LCD的开关
现在想用WINCE50自带的PM来做电源管理相关的处理

现在有几个问题请教各位:
   在C:\WINCE500\PUBLIC\COMMON\OAK\DRIVERS\PM中有电源管理的MDD层和PDD层
   他们都以LIB的形式给PM.dll调用

   1、现在我想把该文件夹中的PDD移植到BSP中,那么我怎么做SOURCE才能链接到我的BSP下的PDD层?
      也就是说,应该有个生成PM.DLL的工程 ,在这个工程的SOURCE中链接了PUBLIC的MDD,并且需要
      链接我的BSP下的PDD,那么这个生成PM.DLL的SOURCE在哪里???
   
   2、请问大家是否都把这个PDD移植到BSP下了??
   

回复评论 (13)

修改pdd层的source,然后链接mdd层的lib,就可以了,例如:
TARGETNAME=pm
RELEASETYPE=PLATFORM
TARGETTYPE=DYNLINK
DLLENTRY=DllEntry


SOURCELIBS=\
    $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\pm_mdd_lib.lib \

点赞  2009-12-16 12:39
哦?把从\PUBLIC\COMMON\OAK\DRIVERS\PM\PDD中移植过来的SOURCE中的的LIB改为DLL吗?

还有个疑问:
   再我没用这个PM之前(用自己的一套电源管理),我在PB中添加了power management full 这个组件
并在public下添加打印信息,发现这个PB默认的PM还是可以运行

可是看\PUBLIC\COMMON\OAK\DRIVERS\PM下的MDD和PDD,并没有一个生成DLL,都是以LIB形式给出的
那么这个PM是怎么运行起来的呢?也就是哪里调用了这两个LIB呢??

如果其他地方还有PM.DLL生成
那么我在BSP下把移植过来的PUBLIC\COMMON\OAK\DRIVERS\PM\PDD的SOURCE改成生成DYNLINK
会不会有问题啊???
点赞  2009-12-16 12:53
引用: 引用 2 楼 wangxin_801115 的回复:
哦?把从\PUBLIC\COMMON\OAK\DRIVERS\PM\PDD中移植过来的SOURCE中的的LIB改为DLL吗?

还有个疑问:
? 再我没用这个PM之前(用自己的一套电源管理),我在PB中添加了power management full 这个组件
并在public下添加打印信息,发现这个PB默认的PM还是可以运行

可是看\PUBLIC\COMMON\OAK\DRIVERS\PM下的MDD和PDD,并没有一个生成DLL,都是以LIB形式给出的
那么这个PM是怎么运行起来的呢?也就是哪里调用了这两个LIB呢??

如果其他地方还有PM.DLL生成
那么我在BSP下把移植过来的PUBLIC\COMMON\OAK\DRIVERS\PM\PDD的SOURCE改成生成DYNLINK
会不会有问题啊???

要是所有的source code都能够直接移植的话,大家都不用修改source或者dir或者header file了,呵呵
to:那么我在BSP下把移植过来的PUBLIC\COMMON\OAK\DRIVERS\PM\PDD的SOURCE改成生成DYNLINK
会不会有问题啊???
木有问题,nk会以pm.dll为名字去image中load libardy,编译到os中就行了,
点赞  2009-12-16 15:21
把PM文件夹的结构全复制过来,PDD的文件夹里放你要修改的代码source,def等配置文件

MDD的文件夹里只放source等配置文件

编译的时候MDD连接bsp里的pdd.lib,其余的文件链接PUBLIC里的


PB在编译public代码时,先将source code编译成lib文件,最后按照系统定制,通过nmake命令将这些lib合成需要的dll
点赞  2009-12-16 15:53
学习下。
点赞  2009-12-16 17:23
有些地方看不懂,但还是顶一下,学习中。。。
点赞  2009-12-16 17:33
改了一下午其他地方的BUG!
刚看到回复
谢谢guopeixin、suwyhoho
明天试一下!
点赞  2009-12-16 17:36
引用: 引用 2 楼 wangxin_801115 的回复:
哦?把从\PUBLIC\COMMON\OAK\DRIVERS\PM\PDD中移植过来的SOURCE中的的LIB改为DLL吗?

还有个疑问:
? 再我没用这个PM之前(用自己的一套电源管理),我在PB中添加了power management full 这个组件
并在public下添加打印信息,发现这个PB默认的PM还是可以运行

......


还想问一下楼主,这个CE系统中的打印信息如何添加,是否任意位置都可以添加呢?
点赞  2009-12-16 17:37
引用: 引用 4 楼 suwyhoho 的回复:

编译的时候MDD连接bsp里的pdd.lib,其余的文件链接PUBLIC里的

PB在编译public代码时,先将source code编译成lib文件,最后按照系统定制,通过nmake命令将这些lib合成需要的dll

能把后两句详细说明一下吗?
编译的时候MDD连接bsp里的pdd.lib,//怎么链接,在哪个文件里链接,是SOURCE嘛?
其余的文件链接PUBLIC里的//其余的文件?是指的什么文件?
谢谢指点!
点赞  2009-12-17 10:59
引用: 引用 9 楼 xilidecai 的回复:
引用 4 楼 suwyhoho 的回复:

编译的时候MDD连接bsp里的pdd.lib,其余的文件链接PUBLIC里的

PB在编译public代码时,先将source code编译成lib文件,最后按照系统定制,通过nmake命令将这些lib合成需要的dll

能把后两句详细说明一下吗?
编译的时候MDD连接bsp里的pdd.lib,//怎么链接,在哪个文件里链接,是SOURCE嘛?
其余的文件链接PUBLIC里的//其余的文件?是指的什么文件?
谢谢指点!

这样:
TARGETNAME=pm
RELEASETYPE=PLATFORM
TARGETTYPE=DYNLINK
DLLENTRY=DllEntry


SOURCELIBS=\
    $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\pm_mdd_lib.lib \
点赞  2009-12-19 12:54
引用: 引用 10 楼 guopeixin 的回复:
引用 9 楼 xilidecai 的回复:
引用 4 楼 suwyhoho 的回复:

编译的时候MDD连接bsp里的pdd.lib,其余的文件链接PUBLIC里的

PB在编译public代码时,先将source code编译成lib文件,最后按照系统定制,通过nmake命令将这些lib合成需要的dll

能把后两句详细说明一下吗?
编译的时候MDD连接bsp里的pdd.lib,//怎么链接,在哪个文件里链接,是SOURCE嘛?
其余的文件链接PUBLIC里的//其余的文件?是指的什么文件?
谢谢指点!


这样:
TARGETNAME=pm
RELEASETYPE=PLATFORM
TARGETTYPE=DYNLINK
DLLENTRY=DllEntry


SOURCELIBS=\
? ? $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\pm_mdd_lib.lib \


您的意思我了解,但是还有个地方转不过弯来:
1、我在原来的BSP下没有PM的驱动,在制定系统工程时加了组件power mamanger full
   这样PB就会根据我加的组件自动给我生成一个PM.DLL
   说明在public下的(PM\MDD , PM\PDD)代码已经被编译并且生成了DLL
2、我再把public下的PM\PDD复制粘贴过来(注意,不是剪切),那么PB在编译的时候就会找到我的BSP下的
   驱动代码,编译生成一个PM.DLL,而public下的PM代码都健在,
   那么是不是又会生成一个PM.DLL呢???
点赞  2009-12-21 13:43
比如你的bsp路径是这样滴。。。

bsp/src/drivers/pm

你sysgen或者在drivers下build,pb会先去找drivers下的dirs文件,根据他的内容选择需要编译的文件夹

在移植public下的pm代码后,把pm加入drivers下的dirs,这样PB就会编译你移植的pm的驱动


pb在sysgen的时候会先去把public下生成的dll文件放到工程目录的某个文件夹下,这个文件夹不是最后镜像所在的release目录;bsp编译出来的文件会放在另一个目录里;在makimg时,pb会对比同名文件的日期选择最新的放入镜像
点赞  2009-12-21 14:24
学习一下,自己做的底板已经用了电源管理芯片max8662。
电源管理的驱动,一直还没动手。
点赞  2009-12-21 14:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复