社区
驱动开发/核心开发
帖子详情
关于系统深度睡眠(Deep Sleep)的理解?
jxxx2967
2010-06-13 11:55:13
大多微处理器芯片都提供深度睡眠的功能,可以减少功耗。比如S3C2440。
那么在什么时候才应该进入深度睡眠呢?
我们知道,一般的操作系统提供了TIMER功能。
这个功能需要使用硬件定时器来进行计数,比如周期为5ms。
那么如果当前有TASK在使用Timer,是否可以进入深度睡眠?
比较困扰我的一个问题,大家都是怎样理解和设计这个feature的呢?
...全文
2272
12
打赏
收藏
关于系统深度睡眠(Deep Sleep)的理解?
大多微处理器芯片都提供深度睡眠的功能,可以减少功耗。比如S3C2440。 那么在什么时候才应该进入深度睡眠呢? 我们知道,一般的操作系统提供了TIMER功能。 这个功能需要使用硬件定时器来进行计数,比如周期为5ms。 那么如果当前有TASK在使用Timer,是否可以进入深度睡眠? 比较困扰我的一个问题,大家都是怎样理解和设计这个feature的呢?
复制链接
扫一扫
分享
转发到动态
举报
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也是可以休眠的,这个由你的控制函数来决定的。
咕唧咕唧shuboLK
2010-06-13
打赏
举报
回复
从hibernate醒过来后,进入了一个叫解冻模式的过渡模式(不能从hibernate直接回到普通模式),此时(在这个模式下)需要重新配置系统时钟设置新的处理器状态。然后就可以进入正常模式了。过程大体就这样,另外有TASK在使用Timer的情况下,应该不会hibernate。 本人菜鸟仅供参考
咕唧咕唧shuboLK
2010-06-13
打赏
举报
回复
学习~~~~~
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
打赏
举报
回复
学习...........
FM33LC0xxx系列MCU之FreeRtos
Deep
Sleep
参考例程.zip
复旦微电子FM33LC0系列MCU的freeRTOS例程,里面包含了
deep
sleep
是用freertos的tickless实现的
Example_PWR_
Sleep
.7z
Example_PWR_
Sleep
.7z
宏基
睡眠
程序
Application_Acer_1.00.3008_W7x64_A
slavick_3cd_02_0716.pdf
slavick_3cd_02_0716
CC32xx Power Management Framework
TI 低功耗WIFI CC32xx系列的电源管理
驱动开发/核心开发
21,616
社区成员
21,711
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章