在飞凌嵌入式T113-i开发板实现休眠及唤醒操作

描述

开发板的休眠唤醒功能是指开发板可以进入低功耗休眠状态并在特定条件下被唤醒。休眠功能可以大大降低开发板的功耗,延长电池寿命,特别适用于需要长时间运行的应用场景。

飞凌嵌入式OK113i-S开发板支持两种休眠方式:freeze和mem。

这两种方式可以通过/sys/power/state文件节点进行操作,用户可以通过在该文件节点写入freeze或mem来触发相应的休眠状态。

在进行休眠之前,系统会配置唤醒源。一旦系统进入休眠状态,可以通过这些唤醒源(如按键、RTC等)在需要时唤醒系统。这种设计允许用户根据需要选择何时以及通过何种方式快速唤醒系统,实现了功耗最小化和快速恢复的平衡。这一机制使得系统在休眠状态下能够极大地减少功耗,同时保留了用户在唤醒后迅速使用系统的便利性。

关于两种休眠模式

输入如下命令可以看到OK113i-S开发板支持的模式有哪些:

 

cat /sys/power/state
开发板

 

freeze:冻结I/O设备,将它们置于低功耗状态,使处理器进入空闲状态,唤醒最快,耗电比其它方式高。实测OK113i-S开发板在只接串口线的情况下5V供电,电流约为0.112A。

进入freeze模式:

 

echo freeze > /sys/power/state

 

开发板

men:挂起到内存,计算机将目前的运行状态等数据存放在内存,关闭硬盘、外设等设备,进入等待状态。此时内存仍然需要电力维持其数据,但整机耗电很少。恢复时计算机从内存读出数据,回到挂起前的状态,恢复速度较快。实测OK113i-S开发板在只接串口线情况下5V供电,电流约为0.076A。

进入mem模式:

 

echo mem > /sys/power/state

 

开发板

通过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定时唤醒的全部操作了,当然,不同的主控平台板卡的具体操作会有差异,但是整体思路是一样的,具体可以根据相对应的平台查看相关资料来确定具体步骤,希望本文提供的方法能够对屏幕前的工程师朋友们的项目开发有所帮助。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分