Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    技术帖 | 飞凌嵌入式T113-i开发板的休眠及唤醒操作

    飞凌嵌入式专区
    3
    3
    2569
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • livpo
      livpo LV 6 last edited by

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

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

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

      本篇内容小编会为大家介绍如何让飞凌嵌入式OK113i-S开发板进入休眠模式,以及如何通过RTC时钟实现定时唤醒。

      关于两种休眠模式

      • freeze

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

      • mem

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

      1、cat /sys/power/state可以看到OK113i-S开发板支持的模式有哪些:

      微信图片_20240116170509.png

      2、echo freeze > /sys/power/state 进入freeze模式:

      微信图片_20240116170522.png

      3、echo mem > /sys/power/state 进入mem模式:

      微信图片_20240116170524.png

      通过RTC定时唤醒

      注意:此处需要使用内部RTC,外部RTC不支持唤醒功能,后面我们还会提及。

      进入开发板的内核配置:

      root@ubuntu: /home/forlinx/work/linux/OK113i-linux-sdk# ./build.sh menuconfig
      

      根据下图框选进行功能选择:
      微信图片_20240116170527.png
      微信图片_20240116170529.png
      微信图片_20240116170531.png

      配置完成后保存,然后修改设备树文件,打开内部RTC功能。
      微信图片_20240116170535.png

      微信图片_20240116170537.png

      保存后进行编译:
      微信图片_20240116170539.png

      编译成功后打包成镜像,烧写完成后,我们在串口终端进行测试。

      进入串口终端进行测试:

      echo “+15”> /sys/class/rtc/rtc0/wakealarm
      

      此处为15秒定时,可自由设置时间,命令执行后就会生效,RTC会单独计时,如果是15秒后才进入休眠,不会触发唤醒。(注意此处需要使用内部RTC,外部RTC不支持唤醒功能)

      echo mem > /sys/power/state
      

      (这里两条指令输入时要紧凑,两条指令间,间隔太长就无效了)

      微信图片_20240116170542.png

      (这里需要注意,我们在未打开内部RTC时,我们的外部RTC默认节点是rtc0,修改后外部rtc设备节点会变更成rtc1。)

      到这里,我们就完成了在飞凌嵌入式OK113i-S开发板上实现休眠以及通过RTC定时唤醒的全部操作了,当然,不同的主控平台板卡的具体操作会有差异,但是整体思路是一样的,具体可以根据相对应的平台查看相关资料来确定具体步骤,希望本文提供的方法能够对屏幕前的工程师朋友们的项目开发有所帮助。

      1 Reply Last reply Reply Quote Share 3
      • J
        Jacky502 LV 5 last edited by

        有没有指定gpio唤醒的方式呢

        1 Reply Last reply Reply Quote Share 2
        • Q
          quanzhi111 LV 5 last edited by

          echo "+5" > /sys/class/rtc/rtc0/wakealarm
          echo mem > /sys/power/state
          休眠之后唤醒不了????ec03f7c4-1f09-48d1-92fa-9a72463c70b5-image.png 大佬,这个什么情况??

          1 Reply Last reply Reply Quote Share 1
          • 1 / 1
          • First post
            Last post

          Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

          行为准则 | 用户协议 | 隐私权政策