0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

按键唤醒系统验证方法

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-30 15:53 次阅读

验证方法

在内核中,休眠方式有很多种,可以通过下面命令查看

# cat /sys/power/state

常用的休眠方式有freeze、standby、mem、disk

freeze:冻结I/O设备,将它们置于低功耗状态,使处理器进入空闲状态,唤醒最快,耗电比其它standby,
mem, disk方式高

standby:除了冻结I/O设备外,还会暂停系统,唤醒较快,耗电比其它 mem, disk方式高

mem:将运行状态数据存到内存,并关闭外设,进入等待模式,唤醒较慢,耗电比disk方式高

disk:将运行状态数据存到硬盘,然后关机,唤醒最慢

示例:

# echo mem > /sys/power/state

系统进入睡眠后,基本都会停掉UI、停掉串口,串口无法操作,如图:

图片

按下按键,系统恢复:

图片

当然这里的 log 并不完整,输入 dmesg 可以看到完整 log:

图片

PM:power manager

具体干了什么,图中有解释,分为 suspend 过程和 resume 过程。

其实一个中断让它支持唤醒系统,最主要是多了两个函数:suspend、resume。

suspend 函数在系统整体 suspend 的时候,会调用每个外设注册的 suspend,我们在这个函数中调用
enable_irq_wake,表示该中断在系统休眠时是 enable 状态。

resume 函数在系统整体 resume 的时候,会调用每个外设注册的 resume 函数,在 resume函数中调用 disable_irq_wake ,表示该中断在系统运行时不需要。两者成对使用。

大家也可以研究一下gpio_keys.c,该驱动看起来比较复杂,但是很完善,毕竟身经百战,什么因素都考虑到了,测试就用它!

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

    关注

    4983

    文章

    18286

    浏览量

    288513
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39850
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • 按键
    +关注

    关注

    4

    文章

    220

    浏览量

    57340
收藏 人收藏

    评论

    相关推荐

    怎样去构建一种SoC系统验证平台?

    SoC系统验证平台总体框架是怎样的?SoC系统验证平台如何去构建?
    发表于 04-28 07:13

    MCU芯片级验证的相关资料推荐

    >产品定义>硬件、软件>芯片测试>产品发布硬件:芯片定义>芯片开发>芯片IO软件:软件定义>软件开发>软硬件联调2.验证的阶段和内容立项------>Tape Out验证计划>模块验证>子系统
    发表于 11-01 06:28

    ETest_CPS工业信息物理系统验证测试平台的用途

    型号规格:工业信息物理系统验证测试平台(ETest_CPS)用途:用于支持装备嵌入式软件配置项级别和系统级别的动态验证与测试,提高我所装备型号嵌入式软件测试验证的自动化程度,促进嵌入式
    发表于 12-24 06:33

    介绍一个简单的存储系统验证平台tutorial

    标有阴影的CPU0和CPU1不是被测系统的一部分,这些模块将在SystemVerilog测试平台中建模。CPU和其余模块之间的信号是DUT外界的接口。02 存储系统验证大多数验证项目中,验证
    发表于 11-04 11:10

    硬件验证方法简明介绍

    验证方法(UVM For VHDL)开放式验证方法 (OVM)验证方法手册 (VMM)eVC
    发表于 11-26 20:43

    食品安全/质量管理系统验证问卷

    食品安全/质量管理系统验证问卷
    发表于 02-02 15:41 21次下载

    AEMB软核处理器设计的SoC系统验证平台

    AEMB软核处理器设计的SoC系统验证平台 本文采用OpenCores组织所发布的32位微处理器AEMB作为SoC系统的控制中心,通过Wishbone总线互联规范将OpenCores组织
    发表于 05-24 11:02 815次阅读
    AEMB软核处理器设计的SoC<b class='flag-5'>系统验证</b>平台

    IOS10.2系统验证已经关闭,意味着不能降级该系统版本

    最近有部分用户说升级到IOS10.2系统或者降级该系统不行,当然不行啦!因为该系统验证已经关闭了,意味着不能降/升级该系统
    发表于 01-31 19:57 2690次阅读

    iOS10.2.1和iOS10.3系统验证通道被关闭!iOS10.3.1成公众唯一可安装系统,有何特性?

     距离iOS 10.3.1正式版系统发布还不到一周,苹果就已经关闭了旧版本系统验证,包括iOS 10.2.1和iOS 10.3系统验证通道。这也就意味着,已经升级到iOS 10.3.1系统
    发表于 04-12 10:14 1441次阅读

    基于FPGA的验证平台及有效的SoC验证过程和方法

    设计了一种基于FPGA的验证平台及有效的SoC验证方法,介绍了此FPGA验证软硬件平台及软硬件协同验证架构,讨论和分析了利用FPGA软硬件
    发表于 11-17 03:06 1.3w次阅读
    基于FPGA的<b class='flag-5'>验证</b>平台及有效的SoC<b class='flag-5'>验证</b>过程和<b class='flag-5'>方法</b>

    利用FPGA软硬件协同系统验证SoC系统的过程和方法

    设计了一种基于FPGA的验证平台及有效的SoC验证方法,介绍了此FPGA验证软硬件平台及软硬件协同验证架构,讨论和分析了利用FPGA软硬件
    发表于 11-17 03:06 3857次阅读
    利用FPGA软硬件协同<b class='flag-5'>系统验证</b>SoC<b class='flag-5'>系统</b>的过程和<b class='flag-5'>方法</b>

    iOS 11.3.1的系统验证通道关闭,iOS 12公测版快陆续发布了

    对于想要升级的用户来说,还是要特别注意下,因为苹果正式关闭iOS 11.3.1的系统验证通道。
    发表于 06-11 01:28 1233次阅读

    自动驾驶系统验证需要考虑的因素

    确保自动驾驶车辆在其预期的运行环境中充分发挥作用是整个系统验证的关键部分。传统的软件验证包括需求和系统级测试的可追溯性。然而,由于机器学习使用基于数据训练的方法,传统
    的头像 发表于 07-11 15:22 2949次阅读

    按键如何唤醒系统官方demo

    系统运行时如果某外设很少用需要让它运行时休眠、系统休眠时要保证哪些外设可以唤醒系统。 博主今天要讨论的,就是一个按键如何
    的头像 发表于 07-30 15:43 528次阅读
    <b class='flag-5'>按键</b>如何<b class='flag-5'>唤醒</b><b class='flag-5'>系统</b>官方demo

    基于架构设计的车载网联系统验证体系研究

    全面覆盖和适应设计侧的不断发展。为应对以上挑战,建立以用户体验和产品性能为中心的验证体系,本文提出了一种基于架构特性的验证方法。该方法通过分解车载网联
    的头像 发表于 01-24 09:46 269次阅读
    基于架构设计的车载网联<b class='flag-5'>系统验证</b>体系研究