系統休眠喚醒技術是電源管理中的關鍵技術。它允許系統在閑置時將功耗降至最低,將外部設備、芯片內部IP和時鐘置于低功耗狀態或完全關閉電源狀態,以極大地延長續航時間。此外,在用戶需要時,系統也能夠迅速恢復電源、時鐘、芯片內部IP以及外部設備的工作狀態,確保用戶的使用體驗不受干擾。
飛凌嵌入式OK113i-S開發板支持兩種休眠方式:freeze和mem。這兩種方式可以通過/sys/power/state文件節點進行操作,用戶可以通過在該文件節點寫入freeze或mem來觸發相應的休眠狀態。
在進行休眠之前,系統會配置喚醒源。一旦系統進入休眠狀態,可以通過這些喚醒源(如按鍵、RTC等)在需要時喚醒系統。這種設計允許用戶根據需要選擇何時以及通過何種方式快速喚醒系統,實現了功耗最小化和快速恢復的平衡。這一機制使得系統在休眠狀態下能夠極大地減少功耗,同時保留了用戶在喚醒后迅速使用系統的便利性。
本篇內容小編會為大家介紹如何讓飛凌嵌入式OK113i-S開發板進入休眠模式,以及如何通過RTC時鐘實現定時喚醒。
1、關于兩種休眠模式
freeze
凍結I/O設備,將它們置于低功耗狀態,使處理器進入空閑狀態,喚醒最快,耗電比其它方式高。實測OK113i-S開發板在只接串口線的情況下5V供電,電流約為0.112A。
mem
掛起到內存,計算機將目前的運行狀態等數據存放在內存,關閉硬盤、外設等設備,進入等待狀態。此時內存仍然需要電力維持其數據,但整機耗電很少。恢復時計算機從內存讀出數據,回到掛起前的狀態,恢復速度較快。實測OK113i-S開發板在只接串口線情況下5V供電,電流約為0.076A。
(1)cat /sys/power/state可以看到OK113i-S開發板支持的模式有哪些:
(2)echo freeze > /sys/power/state 進入freeze模式:
(3)echo mem > /sys/power/state 進入mem模式:
2 、通過RTC定時喚醒
注意:此處需要使用內部RTC,外部RTC不支持喚醒功能,后面我們還會提及。
進入開發板的內核配置:
root@ubuntu: /home/forlinx/work/linux/OK113i-linux-sdk# ./build.sh menuconfig
根據下圖框選進行功能選擇:
配置完成后保存,然后修改設備樹文件,打開內部RTC功能。
保存后進行編譯:
編譯成功后打包成鏡像,燒寫完成后,我們在串口終端進行測試。
進入串口終端進行測試:
echo “+15”> /sys/class/rtc/rtc0/wakealarm
此處為15秒定時,可自由設置時間,命令執行后就會生效,RTC會單獨計時,如果是15秒后才進入休眠,不會觸發喚醒。(注意此處需要使用內部RTC,外部RTC不支持喚醒功能)
echo mem > /sys/power/state
(這里兩條指令輸入時要緊湊,兩條指令間,間隔太長就無效了)
(這里需要注意,我們在未打開內部RTC時,我們的外部RTC默認節點是rtc0,修改后外部rtc設備節點會變更成rtc1。)
到這里,我們就完成了在飛凌嵌入式OK113i-S開發板上實現休眠以及通過RTC定時喚醒的全部操作了,當然,不同的主控平臺板卡的具體操作會有差異,但是整體思路是一樣的,具體可以根據相對應的平臺查看相關資料來確定具體步驟,希望本文提供的方法能夠對屏幕前的工程師朋友們的項目開發有所幫助。
-
嵌入式
+關注
關注
5044文章
18811瀏覽量
298417 -
電源管理
+關注
關注
115文章
6097瀏覽量
143318 -
開發板
+關注
關注
25文章
4766瀏覽量
96149 -
休眠喚醒
+關注
關注
0文章
7瀏覽量
7537
發布評論請先 登錄
相關推薦
評論