驗(yàn)證方法
在內(nèi)核中,休眠方式有很多種,可以通過下面命令查看
# cat /sys/power/state
常用的休眠方式有freeze、standby、mem、disk
freeze:凍結(jié)I/O設(shè)備,將它們置于低功耗狀態(tài),使處理器進(jìn)入空閑狀態(tài),喚醒最快,耗電比其它standby,
mem, disk方式高
standby:除了凍結(jié)I/O設(shè)備外,還會暫停系統(tǒng),喚醒較快,耗電比其它 mem, disk方式高
mem:將運(yùn)行狀態(tài)數(shù)據(jù)存到內(nèi)存,并關(guān)閉外設(shè),進(jìn)入等待模式,喚醒較慢,耗電比disk方式高
disk:將運(yùn)行狀態(tài)數(shù)據(jù)存到硬盤,然后關(guān)機(jī),喚醒最慢
示例:
# echo mem > /sys/power/state
系統(tǒng)進(jìn)入睡眠后,基本都會停掉UI、停掉串口,串口無法操作,如圖:
按下按鍵,系統(tǒng)恢復(fù):
當(dāng)然這里的 log 并不完整,輸入 dmesg 可以看到完整 log:
PM:power manager
具體干了什么,圖中有解釋,分為 suspend 過程和 resume 過程。
其實(shí)一個中斷讓它支持喚醒系統(tǒng),最主要是多了兩個函數(shù):suspend、resume。
suspend 函數(shù)在系統(tǒng)整體 suspend 的時候,會調(diào)用每個外設(shè)注冊的 suspend,我們在這個函數(shù)中調(diào)用
enable_irq_wake,表示該中斷在系統(tǒng)休眠時是 enable 狀態(tài)。
resume 函數(shù)在系統(tǒng)整體 resume 的時候,會調(diào)用每個外設(shè)注冊的 resume 函數(shù),在 resume函數(shù)中調(diào)用 disable_irq_wake ,表示該中斷在系統(tǒng)運(yùn)行時不需要。兩者成對使用。
大家也可以研究一下gpio_keys.c,該驅(qū)動看起來比較復(fù)雜,但是很完善,畢竟身經(jīng)百戰(zhàn),什么因素都考慮到了,測試就用它!
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19676瀏覽量
317734 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1416瀏覽量
41450 -
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213881 -
按鍵
+關(guān)注
關(guān)注
4文章
227瀏覽量
58078
發(fā)布評論請先 登錄
怎樣去構(gòu)建一種SoC系統(tǒng)驗(yàn)證平臺?
ETest_CPS工業(yè)信息物理系統(tǒng)驗(yàn)證測試平臺的用途
介紹一個簡單的存儲系統(tǒng)驗(yàn)證平臺tutorial
AEMB軟核處理器設(shè)計(jì)的SoC系統(tǒng)驗(yàn)證平臺

Xilinx發(fā)布Vivado 2015.1版加速系統(tǒng)驗(yàn)證
IOS10.2系統(tǒng)驗(yàn)證已經(jīng)關(guān)閉,意味著不能降級該系統(tǒng)版本
基于FPGA的驗(yàn)證平臺及有效的SoC驗(yàn)證過程和方法

利用FPGA軟硬件協(xié)同系統(tǒng)驗(yàn)證SoC系統(tǒng)的過程和方法

iOS 11.3.1的系統(tǒng)驗(yàn)證通道關(guān)閉,iOS 12公測版快陸續(xù)發(fā)布了
自動駕駛系統(tǒng)驗(yàn)證需要考慮的因素
高壓電氣系統(tǒng)驗(yàn)證

按鍵如何喚醒系統(tǒng)官方demo

基于架構(gòu)設(shè)計(jì)的車載網(wǎng)聯(lián)系統(tǒng)驗(yàn)證體系研究

評論