
Linux内核之功耗管理
文章平均质量分 71
功耗管理介绍
qxqxa
meizuo
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CPUFreq驱动的简单总结
以上就是一个简单的CPUFreq驱动示例,展示了如何使用Linux内核提供的API来实现对CPU频率的控制。在具体的 频率和电压设置环节,用的都是Linux的标准API regulator_set_voltage()和clk_set_rate()之类的函数。在这个例子中,我们将实现 target_index 回调函数来设置新的频率,并实现 get 函数来获取当前频率。以下是一个简化的CPUFreq驱动示例,演示了如何为一个假想的CPU实现基本的频率调节功能。:提供了统一的接口和机制来管理CPU频率。原创 2025-04-02 15:19:01 · 853 阅读 · 0 评论 -
linux系统休眠时的中断操作
无论是gpio控制器,还是其他外设控制器,捕获到中断,会发给gic;gic根据mask决定是否分发给cpu;cpu如果调用local_irq_disable,就不会来响应中断信号。linux进入休眠,中断相关操作如下:1.会打开中断控制器的irq_set_wake函数(有些架构有这个实现;有些架构,打开中断就有这个功能),来一一打开,那些标记了唤醒功能的中断的唤醒功能;2.然后关闭其他没标记唤醒功能的中断3.打开cpu的中断响应对应代码如下int error;if (error)原创 2024-05-08 16:13:24 · 806 阅读 · 0 评论 -
linux休眠唤醒流程,及示例分析
应用请求休眠,系统进入休眠流程,此时如果设备触发了中断,中断处理程序中首先关闭中断,然后调度内核线程去处理work,但假如这个时候此work还未被调度到,系统就进入休眠了,那么这个设备就被永久关闭中断了,再也不能唤醒系统。休眠后系统卡住,组织串口来休眠,并开启相关打印;设置pm_debug_messages,打印来自系统的调试消息的暂停/休眠内核日志的基础结构。平台休眠的最后,会开启中断,用与响应外部中断,来唤醒系统并继续执行接下来的代码唤醒系统。设备进入休眠,被唤醒或者休眠失败,就会走对应的唤醒流程;原创 2024-04-22 11:27:00 · 2404 阅读 · 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 · 479 阅读 · 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 · 1231 阅读 · 0 评论