電源管理(Power Management)在 Linux Kernel 中,是一個比較龐大的子系統,涉及到供電(PowerSupply)、充電(Charger)、時鐘(Clock)、頻率(Frequency)、電壓(Voltage)、睡眠/喚醒(Suspend/Resume)等方方面面。

Generic PM 軟件架構

Generic PM 主要處理關機、重啟、冬眠(Hibernate)、睡眠(Sleep,在 Kernel 中稱作Suspend)。在內核中,大致可以分為三個軟件層次:
API Layer,用于向用戶空間提供接口,其中關機和重啟的接口形式是系統調用,Hibernate 和 Suspend 的接口形式是sysfs。
PM Core,位于 /kernel/power/ 目錄下,主要處理和硬件無關的核心邏輯。
PM Driver,分為兩個部分,一是體系結構無關的 Driver,提供 Driver 框架(Framework)。另一部分是體系結構相關的Driver,這也是電源管理驅動開發需要涉及到的內容(圖中紅色邊框的模塊)。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
電源
+關注
關注
185文章
18841瀏覽量
263508 -
嵌入式
+關注
關注
5198文章
20449瀏覽量
334012 -
電源管理
+關注
關注
117文章
7235瀏覽量
148004 -
Linux
+關注
關注
88文章
11760瀏覽量
219019 -
軟件
+關注
關注
69文章
5332瀏覽量
91577
發布評論請先 登錄
相關推薦
熱點推薦
Linux進程的睡眠和喚醒
在Linux中,僅等待CPU時間的進程稱為就緒進程,它們被放置在一個運行隊列中,一個就緒進程的狀 態標志位為 TASK_RUNNING。一旦一個運行中的進程時間片用完, Linux 內核的調度器會剝奪這個進程對CPU的控制權,并且從運行隊列中選擇一個合適的進程投入運行。
發表于 06-07 12:26
?854次閱讀
一文搞懂Linux進程的睡眠和喚醒
): 進程在等待某個條件滿足(如I/O操作),可以被信號喚醒。
Linux通過內核提供的系統調用來控制進程的睡眠。常用的系統調用有:
sleep(): 使進程暫停指定的秒數。
usleep(): 使進程暫停
發表于 11-04 15:15
MCU典型的睡眠喚醒時間delay的概念
工作,這時器件就進入了正常工作模式。
這里我們重點分析一下這個喚醒delay的時間組成,在MCU系統喚醒中,如果我們對系統使能了在睡眠模式下的供電電壓模塊待機模式,則從待機到activ
發表于 11-25 08:03
睡眠時的BOR/LPBOR無法喚醒
。但我的意思是,如果棕色的持續時間很長,那么PIC通常會醒來嗎?棕色是否會導致PIC無法正常喚醒或根本無法喚醒的情況?如果可能的話,那么我會在睡眠時也啟用BOR。我可以在沒有睡眠時啟用
發表于 10-12 14:46
GD32進入深度睡眠后通過外部中斷喚醒發現系統時鐘變慢的原因
一、問題1、進入深度睡眠后,通過外部中斷喚醒,發現系統時鐘變慢。2、進入休眠模式,通過任何中斷喚醒,系統時鐘正常。二、原因1、從電源管理章節
發表于 01-26 07:43
Linux進程的睡眠和喚醒
設想有兩個進程 A 和 B,A 進程正在處理一個鏈表,它需要檢查這個鏈表是否為空,如果不空就對鏈表里面的數據進行一些操作,同時 B 進程也在往這個鏈表添加節點。當這個鏈表是空的時候,由于無數據可操作,這時 A 進程就進入睡眠,當 B 進程向鏈表里面添加了節點之后它就喚醒
你知道Linux進程的睡眠和喚醒操作?
Linux 中的進程睡眠狀態有兩種:一種是可中斷的睡眠狀態,其狀態標志位TASK_INTERRUPTIBLE;
發表于 04-23 14:56
?1257次閱讀
GD32低功耗:深度睡眠喚醒系統時鐘變慢問題
一、問題1、進入深度睡眠后,通過外部中斷喚醒,發現系統時鐘變慢。2、進入休眠模式,通過任何中斷喚醒,系統時鐘正常。二、原因1、從電源管理章節
發表于 12-02 15:06
?21次下載
STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實現及優化
STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實現及優化1. 介紹STM32具有多種低功耗模式,當前以STM32L4系列的低功耗模式最為豐富,此處基于STM32L476
發表于 12-31 19:08
?36次下載
Linux電源管理的組成與睡眠喚醒
評論