博客
关于我
电平触发设备休眠唤醒--输入子系统+内核线程
阅读量:338 次
发布时间:2019-03-04

本文共 532 字,大约阅读时间需要 1 分钟。

场景分析:

KEY_A键作为按键,高电平时设备正常工作,低电平时设备休眠。
KEY_B键作为显示灯,工作时为高电平(亮灯),休眠时为低电平(灭灯)。

思路:

创建一个内核线程,持续检测KEY_A的电平状态,并根据检测结果向输入子系统报告相应事件。

环境支持:

Android7.1系统

技术实现:

  • 导入相关内核头文件,包括输入设备管理、GPIO操作、任务队列管理等。
  • 定义输入设备结构体,并注册设备。
  • 创建内核线程,执行按键状态检测。
  • 在检测到电平变化时,根据状态(高电平或低电平)触发相应的输入事件。
  • 代码逻辑:

    • 初始化函数
      • 请求GPIO资源并设置方向。
      • 分配输入设备结构体,并配置设备属性。
      • 注册输入设备。
      • 创建并启动内核线程,用于持续检测按键状态。
    • 线程函数
      • 持续循环检测KEY_A的电平状态。
      • 如果状态未变化,保持当前工作状态。
      • 如果状态发生变化,根据高电平或低电平调用相应的GPIO输出控制。
      • 同时,报告相应的输入事件(如KEY_WAKEUP或KEY_POWER)。
      • 每隔一秒循环检测,确保及时响应状态变化。

    注意事项:

    • 需要正确配置GPIO号和对应的输入事件类型。
    • 内核线程需要在模块卸载时进行停止和资源释放。
    • 需要在内核模块中正确注册和注销设备。

    转载地址:http://aqme.baihongyu.com/

    你可能感兴趣的文章
    jquery each 操作批量数据
    查看>>
    Mac OS X 下 su 命令提示 sorry 的解决方法
    查看>>
    vue-router 缓存路由组件对象
    查看>>
    移动端 触摸事件和mousedown、mouseup、click事件之间的关系
    查看>>
    js中事件捕获和事件冒泡(事件流)
    查看>>
    js的各种数据类型判断(in、hasOwnProperty)
    查看>>
    严格模式、混杂模式与怪异模式
    查看>>
    一篇文章带你搞定 Java 中字符流的基本操作(Write / Read)
    查看>>
    HTML 和 CSS 简单实现注册页面
    查看>>
    (Java)让枚举实现一个接口
    查看>>
    XML 解析学习
    查看>>
    验证码的简单实现
    查看>>
    解决 vscode 窗口故障
    查看>>
    JSP 入门学习
    查看>>
    JSP,EL 和 JSTL 一篇文章就够了
    查看>>
    (延迟初始化)Lazy 初始化
    查看>>
    (SpringMVC)springMVC.xml 和 web.xml
    查看>>
    Oracle 学习一篇文章就够了(珍藏版)
    查看>>
    一篇文章带你搞定 Oracle 的体系结构
    查看>>
    Oracle 单行函数
    查看>>