电源管理

1 引言

linux系统进入低功耗模式,需要执行如下步骤,

  • a. 暂停各类APP(用户APP,内核线程);
  • b. 暂停各类设备;
  • c. 停止CPU;

Linux唤醒过程:

  • d. 启动CPU
  • e. 启动设备
  • f. 启动各类APP

可以参考文章

1. 电源管理基本观念之一,链接为http://blog.sina.com.cn/s/blog_a6559d920101i52j.html

2. Linux的电源管理架构,链接为:https://blog.csdn.net/bingqingsuimeng/article/details/7935414

3. Linux休眠与唤醒,链接为:https://blog.csdn.net/bingqingsuimeng/article/details/8197912

2 基本概念

设备电源管理模型:

  • 系统睡眠模型
    • On
    • Standby
    • Suspend to RAM
  • Runtime电源管理模型
    • 降低运行时钟
    • 关闭无用设备

3 U-BOOT电源管理

定义suspend命令

  U_BOOT_CMD(suspend, 1, 0, do_suspend, "short command comment", "long command comment");

实现do_suspend函数 

  do_suspend(*cmdtp, flag, argc, *argv[])

睡眠操作:参考S3C2440 P250,详述如何进入Sleep Mode

 注:

  1.  8~12步骤需要使用汇编实现,参考内核源码arch\arm\mach-S3C2440.S

  2. 休眠时第9步,让SDRAM自刷新时,CPU无法访问SDRAM。此时如果有MMU功能,则需要页表填充MMU进行地址映射。

   通过执行rREFRESH和RCLKCON,从SDRAM中读取指令,随后指令被ICACHE和DCACHE使用填充入TLB。关闭SDRAM后,CPU仍能通过cache使用。

唤醒操作:参考S3C2440 P251,详述如何唤醒

3 Linux电源管理框架

启动suspend to ram:

echo mem > /sys/power/state

 

入口函数为:

state_store (/kernal/power/main.c)

  enter_state

    suspend_prepare

    suspend_enter

    suspend_finish

  

操作结构体为:

power_attr(state);

4 设备驱动的电源管理

5 APP实现电源管理

6 设计硬件供电系统

转载于:https://www.cnblogs.com/lyndon-jiang/p/11055852.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值