![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核之功耗管理
文章平均质量分 66
功耗管理介绍
qxqxa
弱小就以弱小的方式前进吧!
展开
-
linux休眠唤醒流程,及示例分析
应用请求休眠,系统进入休眠流程,此时如果设备触发了中断,中断处理程序中首先关闭中断,然后调度内核线程去处理work,但假如这个时候此work还未被调度到,系统就进入休眠了,那么这个设备就被永久关闭中断了,再也不能唤醒系统。休眠后系统卡住,组织串口来休眠,并开启相关打印;设置pm_debug_messages,打印来自系统的调试消息的暂停/休眠内核日志的基础结构。平台休眠的最后,会开启中断,用与响应外部中断,来唤醒系统并继续执行接下来的代码唤醒系统。设备进入休眠,被唤醒或者休眠失败,就会走对应的唤醒流程;原创 2024-04-22 11:27:00 · 967 阅读 · 0 评论 -
poweroff, reboot流程
当传递特定的magic值如 LINUX_REBOOT_CMD_POWER_OFF时,内核会执行关机并尝试触发硬件层面的电源关闭。poweroff /halt /reboot操作通常由用户空间的systemd或其他初始化系统通过sys_reboot()系统调用触发。poweroff流程,pm_power_off函数被各平台赋值到具体函数,比如通过操作PMIC来实现关机。reboot流程,arm_pm_restart函数可能被具体平台赋值到具体函数,比如操作WDT实现重启。原创 2024-06-06 15:22:16 · 280 阅读 · 0 评论 -
runtime pm的实例分析
他们会来执行设备驱动实现的对应操作;比如在drivers/spi/spi_qsd.c中,unprepare_transfer_hardware接口会去通过pm_runtime_put_autosuspend,去调用pm_dev_ops的runtime_suspend成员。比如在drivers/spi/spi_qsd.c中,prepare_transfer_hardware接口会去通过pm_runtime_get_sync,去调用pm_dev_ops的runtime_resume成员。原创 2024-05-15 11:23:09 · 969 阅读 · 0 评论