关于系统深度睡眠(Deep Sleep)的理解?

jxxx2967 2010-06-13 11:55:13
大多微处理器芯片都提供深度睡眠的功能,可以减少功耗。比如S3C2440。
那么在什么时候才应该进入深度睡眠呢?
我们知道,一般的操作系统提供了TIMER功能。
这个功能需要使用硬件定时器来进行计数,比如周期为5ms。
那么如果当前有TASK在使用Timer,是否可以进入深度睡眠?
比较困扰我的一个问题,大家都是怎样理解和设计这个feature的呢?
...全文
2272 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yihua0001 2010-06-27
  • 打赏
  • 举报
回复
深度睡眠应该是除了MCU和DDR,其他的设备包括CPU都要断电的,恢复的时候把睡眠前的数据再恢复回去。这个部分属于Power management了。
kenlo 2010-06-23
  • 打赏
  • 举报
回复
有的處理器可以設置 wake-up resource, 如 usb 裝置插入或計時器喚醒(我們稱之為 alarm), 所以你 task 有使用 timer 時一樣可以進入 suspend(D3 mode, 也就是你所謂的 deep sleep) 狀態, 然後透過 alarm 來 wake-up.
曹大夯 2010-06-23
  • 打赏
  • 举报
回复
这栋楼很高啊!凑凑热闹。

不同的系统设计方案不一样。

如果系统需要Timer来唤醒系统,那么休眠的时候保持Timer模块继续运行,关闭其他模块来实现节电就好了。

如果系统不需要Timer来唤醒系统,通过外部触发来Resume系统,那么系统在Hibernate时,停用该Timer就好了。在系统Resume之后,该Timer可以被系统Active继续计时。
jxxx2967 2010-06-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yihua0001 的回复:]

引用 7 楼 liukun321 的回复:
从hibernate醒过来后,进入了一个叫解冻模式的过渡模式(不能从hibernate直接回到普通模式),此时(在这个模式下)需要重新配置系统时钟设置新的处理器状态。然后就可以进入正常模式了。过程大体就这样,另外有TASK在使用Timer的情况下,应该不会hibernate。 本人菜鸟仅供参考


这部分功能很多做产品的都会遇到,就是所谓的电源……
[/Quote]

在有TASK使用TIMER时也可以进入休眠,那么TIMER如何触发?
yinxiaoqi 2010-06-13
  • 打赏
  • 举报
回复
呵呵 这个不太清楚,学习下!
yihua0001 2010-06-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 liukun321 的回复:]
从hibernate醒过来后,进入了一个叫解冻模式的过渡模式(不能从hibernate直接回到普通模式),此时(在这个模式下)需要重新配置系统时钟设置新的处理器状态。然后就可以进入正常模式了。过程大体就这样,另外有TASK在使用Timer的情况下,应该不会hibernate。 本人菜鸟仅供参考
[/Quote]

这部分功能很多做产品的都会遇到,就是所谓的电源管理模块。就算你在使用Timer也是可以休眠的,这个由你的控制函数来决定的。
  • 打赏
  • 举报
回复
从hibernate醒过来后,进入了一个叫解冻模式的过渡模式(不能从hibernate直接回到普通模式),此时(在这个模式下)需要重新配置系统时钟设置新的处理器状态。然后就可以进入正常模式了。过程大体就这样,另外有TASK在使用Timer的情况下,应该不会hibernate。 本人菜鸟仅供参考
  • 打赏
  • 举报
回复
学习~~~~~
hfCoder 2010-06-13
  • 打赏
  • 举报
回复
不懂,up
jxxx2967 2010-06-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zjyu88 的回复:]

常见的有sleep、hibernate,不知道你指的深度睡眠是否指hibernate,在使用过程中,hibernate确实能达到省电的要求。
在进入hibernate后,除了电源管理芯片、内存进入自刷新模式外,其他包括CPU核心和外设都断电,通过重新上电来唤醒。
当然,也有深度睡眠是指把内存的内容保存在硬盘后都断电,不过这种还没做过。
[/Quote]

hibernate, 对,就是这个东东
一般在什么情况下进入?都需要考虑哪些方面?hibernate以后,系统的Tick就完全停止了,唤醒以后应该如何处理?有TASK在使用Timer的情况下,是否还会hibernate呢?
zjyu88 2010-06-13
  • 打赏
  • 举报
回复
常见的有sleep、hibernate,不知道你指的深度睡眠是否指hibernate,在使用过程中,hibernate确实能达到省电的要求。
在进入hibernate后,除了电源管理芯片、内存进入自刷新模式外,其他包括CPU核心和外设都断电,通过重新上电来唤醒。
当然,也有深度睡眠是指把内存的内容保存在硬盘后都断电,不过这种还没做过。
Great_Bug 2010-06-13
  • 打赏
  • 举报
回复
学习...........

21,616

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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