请教一下大家在Linux下面电源管理的做法

hzdysymbol 2008-12-23 11:43:50
本人做Linux不久,以前一直从事CE下面BSP定制的工作,现在转做Android
CE下面电源管理OS做得比较多,基本上是定义成几种状态(如ON,USERIDLE,SYSTEMIDLE,SUSPEND,OFF等),然后各个驱动也是定义有几种状态(D0~4),通过注册表可以映射其对应关系,系统的各种状态之间可以通过事件或函数调用来切换.
在Linux下面好象也有专门的电源管理驱动如ACPI之类的,但好象它不支持ARM的芯片
还有APM,不知道它实现的是哪些功能
我看Kernel下面也有Power的目录,现在Android下面也有自己的电源管理驱动
所以看得有些乱,请各位高手指点一下,说说你们的设备电源管理都是怎么做的?
谢谢!
...全文
356 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
aretu 2009-07-29
  • 打赏
  • 举报
回复
遇到了同样的问题.
Eric2Fiona 2009-04-25
  • 打赏
  • 举报
回复
哪位高人能给详细指导一下Android 中的Power Management么?小妹刚刚入行,还没太入门,就整来这么个大家伙来研究,头疼ing....
hzdysymbol 2009-01-18
  • 打赏
  • 举报
回复
这贴子也有段时间了,虽然问题还没有完全解决,但先把贴子结了
现在已基本做到在Android的平台下面,把一部分设备的驱动单独划成一类管理,进Suspend时先关这些设备,Resume回来时后开这些设备,也可以不开这些设备等。
gogofly_lee 2009-01-06
  • 打赏
  • 举报
回复
请教不敢,欢迎一起讨论讨论。
  • 打赏
  • 举报
回复
帮顶吧,内核级的一直没有勇气深入.
hzdysymbol 2009-01-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 gogofly_lee 的回复:]
Android 自己开发了一套电源管理系统,从现在看到的感觉还不是很完善,看来LZ做了多年的电源管理,应该经验很丰富了,也应该知道:电源管理不只是软件的问题,电源管理是一个系统问题,包括软件,硬件等各个方面。现在硬件的电源管理技术也非常成熟了,在ARM芯片中就有什么dvfs,SLM等等。lINUX本生也有动态电源管理什么的。
在Android中,Google在Kernel中增加了电源管理模块以支持应用的电源管理策略,在应用中主要是以锁的方…
[/Quote]
好的,我加你为好友了,有机会向你请教
gogofly_lee 2008-12-31
  • 打赏
  • 举报
回复
Android 自己开发了一套电源管理系统,从现在看到的感觉还不是很完善,看来LZ做了多年的电源管理,应该经验很丰富了,也应该知道:电源管理不只是软件的问题,电源管理是一个系统问题,包括软件,硬件等各个方面。现在硬件的电源管理技术也非常成熟了,在ARM芯片中就有什么dvfs,SLM等等。lINUX本生也有动态电源管理什么的。
在Android中,Google在Kernel中增加了电源管理模块以支持应用的电源管理策略,在应用中主要是以锁的方式实现的。
我也正在做这块,有机会一起讨论讨论。
hzdysymbol 2008-12-30
  • 打赏
  • 举报
回复
这几天先在看Android下面的电源管理策略
不知道哪位高人可以指点下?
快乐田伯光 2008-12-30
  • 打赏
  • 举报
回复
俺也有!
hefuhua 2008-12-24
  • 打赏
  • 举报
回复
我目前也有个电源管理任务,进来学习的
hzdysymbol 2008-12-24
  • 打赏
  • 举报
回复
谢谢Joyself的回答,等我研究再深入一点的时候再来讨论。
opengl231 2008-12-24
  • 打赏
  • 举报
回复
友情up
wap21 2008-12-24
  • 打赏
  • 举报
回复
友情up
joyself 2008-12-24
  • 打赏
  • 举报
回复
我来说说几个点

1)一般在ARM-linux中 有这样几个状态:
*) 运行
*) Standby mode
*) Stop mode
在这个跟芯片的实现也有关系,对于Linux下的状态(以及如何进入此状态)可以看
kernel源代码目录下的 Documentation/power/states.txt

2)在上述不同的状态,对于关闭不同的clock gating,当然芯片还可以有power gating
在standby或stop模式时关闭上述gating,设置唤醒中断源,resume时再打开gating。
最新的kernel有PM control的模型,你的驱动实现suspend和resume接口,然后调用
enable_irq_wake()来设置唤醒中断源。

3)现在一般都一个PMIC(Power Mangament IC)芯片来负责全局的供电。
所以需要在合适的时间打开或者关闭供电的源。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧