首页 > 其他分享 >编写一个简单的Iinput_dev框架

编写一个简单的Iinput_dev框架

时间:2024-10-27 11:47:42浏览次数:7  
标签:Iinput demo error dev input device 编写 struct

往期内容

本专栏往期内容:

  1. input子系统的框架和重要数据结构详解-CSDN博客
  2. input device和input handler的注册以及匹配过程解析-CSDN博客
  3. input device和input handler的注册以及匹配过程解析-CSDN博客

I2C子系统专栏:

  1. 专栏地址:IIC子系统_憧憬一下的博客-CSDN博客
  2. 具体芯片的IIC控制器驱动程序分析:i2c-imx.c-CSDN博客
    – 末篇,有往期内容观看顺序

总线和设备树专栏:

  1. 专栏地址:总线和设备树_憧憬一下的博客-CSDN博客
  2. 设备树与 Linux 内核设备驱动模型的整合-CSDN博客
    – 末篇,有往期内容观看顺序

前言

img
img

和之前的驱动程序有点差别(IIC专栏中编写的控制器驱动框架编写一个通用的i2c控制器驱动框架-CSDN博客),在driver中变成注册input_dev,file_operations字符驱程序的创建在input_handler层实现(原本是在platform_driver中实现的:file_operation、设备类的注册),实现了内核驱动程序的上层、中转层、下层的分离

下层驱动中,只需要去编写好设备的驱动程序,在程序中分配、设置、注册input_dev,发生中断时只需要上报中断事件即可,其余的中转层和上层的驱动程序内核已经做好了。

这个在之前对内核提供的源码示例进行讲解的时候也很清晰了,详见本专栏前3章内容。

1. 怎么编写input_dev驱动

这里参考内核提供的gpio_keys.c为例子,input_dev上层

\Linux-4.9.88\drivers\input\keyboard\gpio_keys.c:

标签:Iinput,demo,error,dev,input,device,编写,struct
From: https://blog.csdn.net/caiji0169/article/details/143261794

相关文章

  • 通过duxapp提供的基础方法、UI组件、全局样式,快速编写项目
    使用duxapp,我是如何实现快速完成项目开发的?像下面这个例子,这个项目有140多个页面,但是真实的开发时间,在熟练使用duxapp的情况下,不会超过两周,并且可以将它兼容APP、小程序、H5这里仅展示了其中一部分页面,这个项目主要包含下这些功能购物订单流程售后退换文章发布门店功能......
  • 第四届文化、设计与社会发展国际学术会议(CDSD 2024) The 4th International Confere
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus大会时间:2024年12月06-08日大会地点:马来西亚-吉隆坡三、大会介绍文化是人类社会相对于经济和......
  • 22207223-王颖对于编写pta答题判题程序的总结
    目录一、前言1.1知识点1.2题量1.3难度二、答题判题程序12.1设计与分析2.2踩坑心得2.3改进建议三、答题判题程序23.1设计与分析3.2踩坑心得3.3改进建议四、答题判题程序34.1设计与分析4.2踩坑心得4.3......
  • SpringBoot编写WebApi~(1)idea创建项目并打包
    1.idea创建springboot项目,参考2、idea将springboot打包成jar,参考,对于新版idea默认使用gradle构建,则使用下面步骤build.gradle文件添加以下几行://打包配置bootJar{archiveBaseName.set('xxx-project')archiveVersion.set('0.0.1')archiveFileName.set('xxx-......
  • [python]windows上通过whl文件安装sounddevice教程
    要通过.whl文件安装sounddevice,可以按照以下步骤进行操作:一、准备工作下载.whl文件:从gitee.com/FIRC/pythonlibs_whl_mirror或其他可信任的源下载sounddevice的.whl安装包。确保下载的.whl文件与你的Python版本和系统架构相匹配。安装pip:pip是Python的包管理工具,通常与Python一起安......
  • 【深搜】桐桐的组合(devc++)
    【问题描述】排列与组合是常用的数学方法,桐桐刚刚学会了全排列,就想试试组合,组合就是从n 个元素中抽出r个元素(不分顺序且r≤n),我们可以简单地将n 个元素理解为自然数1,2,…,n ,从中任取r 个数。【输入格式】两个整数n 和r(1≤r≤n≤20)。【输出格式】输出所有的组......
  • Nuxt.js 应用中的 server:devHandler 事件钩子详解
    title:Nuxt.js应用中的server:devHandler事件钩子详解date:2024/10/26updated:2024/10/26author:cmdragonexcerpt:server:devHandler是Nuxt.js中的一个生命周期钩子,它在Nitro开发服务器注册开发中间件时被调用。使用这个钩子,开发者可以为开发服务器添加......
  • Nuxt.js 应用中的 server:devHandler 事件钩子详解
    title:Nuxt.js应用中的server:devHandler事件钩子详解date:2024/10/26updated:2024/10/26author:cmdragonexcerpt:server:devHandler是Nuxt.js中的一个生命周期钩子,它在Nitro开发服务器注册开发中间件时被调用。使用这个钩子,开发者可以为开发服务器添加自定义......
  • 短视频电商系统,编写延迟消息实现代码
    短视频电商系统,编写延迟消息实现代码1、配置交换器和队列importorg.springframework.context.annotation.Configuration;importorg.springframework.amqp.core.*;importorg.springframework.context.annotation.Bean;/***延迟交换器和队列*/@Configurationp......
  • 关于ubuntu系统升级遇到的问题:upgrades to the development release are only.......
    主要问题在于使用的是命令:sudodo-release-upgrade-d这将会寻找最新的版本进行安装,但是如果最新版本不稳定的话请求会受到拒绝,导致更新无法进行。具体区别如下:do-release-upgrade是Ubuntu系统用于升级到新版本的命令。当你运行这个命令时,系统会检查是否有新版本可用,并且会自......