嵌入式驱动学习第二周——Linux休眠唤醒

前言

   这篇博客来聊一聊Linux系统的休眠与唤醒。

   嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博主并订阅本专栏,一起讨论一起学习。现在关注就是老粉啦!

目录

  • 前言
  • 1. 休眠
    • 1.1 休眠的几种状态
    • 1.2 查看节点所处的状态
    • 1.3 休眠唤醒次数查看
  • 2. 唤醒
  • 3. 问题
  • 参考资料

1. 休眠

1.1 休眠的几种状态

   系统是可以休眠的,实际是保存系统上下文然后挂起(suspend)。

   Linux可以通过终端得知内核的休眠方式:

cat /sys/power/state

在这里插入图片描述
   可以看到,在开发板的命令行运行的结果发现我们的linux内核支持freeze、standby、mem三个模式。

   Linux的休眠方式有以下四种:

freeze: 冻结I/O设备,将它们置于低功耗状态,使处理器进入空闲状态,唤醒最快,耗电比其它standby, mem, disk方式高
standby:除了冻结I/O设备外,还会暂停系统,唤醒较快,耗电比其它 mem, disk方式高
mem: 将运行状态数据存到内存,并关闭外设,进入等待模式,唤醒较慢,耗电比disk方式高
disk: 将运行状态数据存到硬盘,然后关机,唤醒最慢

   我们可以通过echo指令让linux系统进入置顶的休眠模式。

echo standby > /sys/power/state

1.2 查看节点所处的状态

   查看节点/sys/kernel/debug/wakeup_sources可以打印出系统的锁并可以但看到其当前所处的状态:

在这里插入图片描述

1.3 休眠唤醒次数查看

  节点/sys/kernel/debug/suspend_stats查看之前的休眠状态,会总结休眠唤醒成功多少次,失败多少次,在哪一步失败

cat /sys/kernel/debug/suspend_stats

在这里插入图片描述

2. 唤醒

   当我们休眠时,如果想唤醒,则需要添加中断唤醒源,使得在休眠时,这些中断是设为开启的,当有中断来,则会退出唤醒,常见的中断源有按键,USB等.

   要实现这个效果,首先需要有一个中断程序,比如按键驱动程序,此处博主直接用之前学imx6ull的按键驱动程序来作为案例展示一下

   首先需要进入lib/modules/4.1.15中,然后注册其中已准备好的按键驱动并加入& 让其在后台运行

depmod
modprobe key.ko
./keyApp /dev/key &

在这里插入图片描述

   然后我们让系统进入休眠状态。

在这里插入图片描述
   此时我们再按下开发板上对应的按键即可退出休眠状态。

在这里插入图片描述

3. 问题

/sys/kernel/debug/下没有任何文件的

参考资料

[1] Linux电源管理-休眠与唤醒

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/438078.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

爬虫实战——麻省理工学院新闻

文章目录 发现宝藏一、 目标二、 浅析三、获取所有模块四、请求处理模块、版面、文章1. 分析切换页面的参数传递2. 获取共有多少页标签并遍历版面3.解析版面并保存版面信息4. 解析文章列表和文章5. 清洗文章6. 保存文章图片 五、完整代码六、效果展示 发现宝藏 前些天发现了一…

Eclipse左边project框如何打开?

1、点击Eclipse顶端window 2、点击Show View 3、点击Project Explorer。 如下图(图片转自其他博主)。

Web自动化测试--selenium

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

第五十二回 戴宗二取公孙胜 李逵独劈罗真人-飞桨AI框架安装和使用示例

吴用说只有公孙胜可以破法术,于是宋江请戴宗和李逵去蓟州。两人听说公孙胜的师傅罗真人在九宫县二仙山讲经,于是到了二仙山,并在山下找到了公孙胜的家。 两人请公孙胜去帮助打高唐州,公孙胜说听师傅的。罗真人说出家人不管闲事&a…

【java】后序遍历二叉树

采用递归方式实现 节点类 public class Node {private int value;//父节点private Node fNode;//左节点private Node left;//右节点private Node right;//是否已经打印过private boolean sign false;public Node() {}public boolean isSign() {return sign;}public void setS…

京东老矣,尚能饭否?

图片|《冰与火之歌》截图 ©自象限原创 作者丨程心 编辑丨罗辑 从2004年1月,京东正式涉足电商至今,整整二十年过去了。 2024年3月6日,京东发布了2023年第四季度及全年财报。数据显示,2023Q4京东收入3061亿元人民…

腾讯云服务器和阿里云服务器价格测评_2024年费用大PK

2024年阿里云服务器和腾讯云服务器价格战已经打响,阿里云服务器优惠61元一年起,腾讯云服务器61元一年,2核2G3M、2核4G、4核8G、4核16G、8核16G、16核32G、16核64G等配置价格对比,阿腾云atengyun.com整理阿里云和腾讯云服务器详细配…

分段线性化问题探析

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…

迷你内裤洗衣机排名前十名:推荐十款2024专业性高的内衣洗衣机

最近一段时间,关于内衣到底是机洗好,还是手洗好这个话题,有很多人都在讨论,坚决的手洗党觉得应该用手来清洗,机洗与其它衣物混合使用,会产生交叉感染,而且随着使用时间的推移,会变得…

一命通关前缀和

前缀和 简介 先来简单看一个场景。现在有一个公交车,第一站上了4个人,第二站上了7个人,第三站上了1个人,第四站上了5个人,问一共上了多少人? 答案很显而易见,只需要遍历这个数组,把…

DevEco-Studio 3.1.1 Release和DevEco Studio NEXT Developer Preview1同时安装在mac m2上

其实mas上支持同一个app的多个版本安装的,需要注意的是SDK的目录需要区分开,不能被覆盖。 HarmonyOS和OpenHarmony SDK配置 3.1.1 Release,HarmonyOS的SDK目录:/Users/zhongyili/Library/Huawei/Sdk_3.1 NEXT Developer Previ…

【2】SLoRa: A Systematic Framework for Synergic Interference Resilience In LPWAN

这一篇基于上一篇文章,仅记录我遗忘的知识点; 以较低的成本提供可靠的符号恢复; 符号恢复【振幅和频率】 为了避免环境噪声并提高可靠性,我们采用信号预处理和窗口滑动算法来检测幅度变化点; 信号处理:归一化和指数化…

如何查看前端的vue项目是vue2还是vue3项目

1. 检查package.json文件 在项目的根目录下,打开package.json文件,查找dependencies或devDependencies部分中的vue条目。版本号将告诉你是Vue 2还是Vue 3。例如: Vue 2.x: "vue": "^2.x.x"Vue 3.x: "vue": &…

Rust入门:C++和Rust动态库(dll)的相互调用

无论是C调用Rust动态库还是Rust调用C动态库,其操作基本都是一样地简单,基本和C调用C的动态库没什么区别,只需要列出所需要导入的函数,并链接到相应的lib文件即可。 这里,在windows中,我们以dll动态库为例说…

虽说主业搞前端,看到如此漂亮的网页UI,也是挪不开眼呀。

漂亮的网页UI能够吸引人的眼球,给人留下深刻的印象。作为前端开发人员,可以通过不断学习和掌握设计技巧和工具,提升自己的UI设计能力,为用户提供更好的视觉体验。 以下是一些提升网页UI设计能力的建议: 学习设计基础知…

外包干了一周,技术明显倒退。。。。。

先说一下自己的情况,本科生,2019年我通过校招踏入了南京一家软件公司,开始了我的职业生涯。那时的我,满怀热血和憧憬,期待着在这个行业中闯出一片天地。然而,随着时间的推移,我发现自己逐渐陷入…

【鸿蒙 HarmonyOS 4.0】解决:搜索无效问题

一、背景 页面包含搜索框和列表,列表默认展示所有数据并具有分页功能。然而,在输入关键字到搜索框时,列表未正确展示搜索结果。 二、功能实现 2.1、原代码及实现效果 import ChargeType from ../../viewModel/ChargeType import ChargeMo…

devc++8x8取模软件

这几天在搞arduino nano和单个max7219模块,涉及到16进制的取模,在网上转了一圈,没找到合适的取模软件,于是自己做了一个,试过,可以用,按esc退出并生成16进制的取模结果 源代码: #i…

liunx操作系统 环境变量

环境变量 main函数参数 命令行参数环境变量 环境变量的查看环境变量的获取 main函数参数 命令行参数 main函数是有参数的,只是我们一般不适用 这是main函数从bash中读取进程数据使用的一个基本入口。 下面进行简单演示。 o 好oo都是我们输入的命令行参数。其实&a…

20240304-使用VS2022编译blender3.6.2源代码

20240304-使用VS2022编译blender3.6.2源代码 一、软件环境 Win10 x64 22h2 JuneVS2022 v17.9.0CMake v3.24.4SVN v1.14.3GIT v2.29.2标签:win10 22h2 vs2022 blender 63335分栏:C 二、硬件环境 Win10 x64的PC台式机 三、获取源码 方法一 网盘下载…