??在嵌入式系統設計中,休眠與喚醒技術是優化電源管理、延長設備續航的關鍵。飛凌嵌入式基于全志T113-i處理器開發設計的OK113i-S開發板提供了兩種休眠模式:freeze和mem,以滿足不同應用場景下的功耗與恢復速度需求。本文將詳細介紹如何讓OK113i-S開發板進入休眠狀態,并通過內部RTC實現定時喚醒。
一、休眠模式簡介
- freeze模式:
- 此模式下,I/O設備被凍結,進入低功耗狀態,處理器處于空閑。
- 喚醒速度快,但相比其他模式耗電量稍高。
- 實測在僅接串口線的情況下,5V供電時電流約為0.112A。
- mem模式:
- 系統將當前運行狀態等數據存儲在內存中,關閉硬盤和外設等。
- 內存需保持供電以維持數據,但整體功耗很低。
- 恢復時從內存讀取數據,快速回到休眠前狀態。
- 實測在僅接串口線的情況下,5V供電時電流約為0.076A。
二、查看與設置休眠模式
- 查看支持的休眠模式:
- 通過命令cat /sys/power/state可以查看OK113i-S開發板支持的休眠模式。
- 通過命令cat /sys/power/state可以查看OK113i-S開發板支持的休眠模式。
- 進入休眠模式:
- 使用echo freeze > /sys/power/state命令進入freeze模式。
- 使用echo freeze > /sys/power/state命令進入freeze模式。
- 使用echo mem > /sys/power/state命令進入mem模式。
三、通過RTC定時喚醒
注意:此功能需使用內部RTC,外部RTC不支持喚醒。
- 配置內核支持:
- 進入開發板的內核配置界面:
root@ubuntu: /home/forlinx/work/linux/OK113i-linux-sdk# ./build.sh menuconfig。
- 根據界面提示,選擇并啟用內部RTC相關功能。
1. 修改設備樹文件:
- 打開設備樹文件,啟用內部RTC功能,并保存修改。
2. 編譯與燒寫:
- 保存配置后,進行編譯。
- 編譯成功后,將鏡像打包并燒寫到開發板。
3. 設置RTC定時喚醒:
- 通過串口終端連接開發板。
- 使用命令以下設置15秒后喚醒(時間可根據需要調整)。
echo "+15" > /sys/class/rtc/rtc0/wakealarm
- 注意,RTC定時是獨立計時的,如果設置定時后在15秒內進入休眠,則不會立即觸發喚醒。
echo mem > /sys/power/state
- 緊接著使用echo mem > /sys/power/state命令進入mem休眠模式(兩條命令需緊湊輸入,間隔過長可能無效)。
特別提示:
- 在未開啟內部RTC時,外部RTC默認節點為rtc0。開啟內部RTC后,外部RTC設備節點會變更為rtc1。
四、總結
通過上述步驟,我們成功在飛凌嵌入式T113-i開發板上實現了休眠及通過RTC定時喚醒的功能。不同主控平臺板卡的具體操作可能有所差異,但整體思路相似。
工程師們可根據具體平臺查閱相關資料,確定詳細步驟。希望本文能為工程師們的項目開發提供有益參考。