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,该驱动看起来比较复杂,但是很完善,毕竟身经百战,什么因素都考虑到了,测试就用它!

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

    关注

    5065

    文章

    18998

    浏览量

    302634
  • 内核
    +关注

    关注

    3

    文章

    1362

    浏览量

    40205
  • Linux
    +关注

    关注

    87

    文章

    11217

    浏览量

    208818
  • 按键
    +关注

    关注

    4

    文章

    223

    浏览量

    57561
收藏 人收藏

    评论

    相关推荐

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

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

    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 859次阅读
    AEMB软核处理器设计的SoC<b class='flag-5'>系统验证</b>平台

    Xilinx发布Vivado 2015.1版加速系统验证

    2015年5月5日,中国北京 - All Programmable技术和器件的全球领先企业赛灵思公司(Xilinx, Inc. (NASDAQ:XLNX))今天宣布推出可加速系统验证的Vivado®设计套件2015.1版。该版本具备多项可加速全可编程FPGA和SoC开发及部署的主要先进功能。
    发表于 05-05 17:12 1159次阅读

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

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

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

    设计了一种基于FPGA的验证平台及有效的SoC验证方法,介绍了此FPGA验证软硬件平台及软硬件协同验证架构,讨论和分析了利用FPGA软硬件
    发表于 11-17 03:06 1.4w次阅读
    基于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 4339次阅读
    利用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 1294次阅读

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

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

    高压电气系统验证

    高压电气系统验证纯电和混合动力汽车中的高压电气系统关乎整车的能耗和安全,需要在部件及整车开发阶段做全面的测试与验证。符合ISO21498*标准的电压、电流一体式测量模块CSMHVBM系列产品,可以
    的头像 发表于 10-13 14:36 788次阅读
    高压电气<b class='flag-5'>系统验证</b>

    按键如何唤醒系统官方demo

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

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

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