首页 > 其他分享 >符合input子系统的字符设备驱动之按键驱动(一)

符合input子系统的字符设备驱动之按键驱动(一)

时间:2023-07-12 18:16:18浏览次数:41  
标签:input 按键 硬件 寄存器 驱动 子系统

作者:Bright-Ho

联系方式:[email protected]



符合input子系统的设备驱动之按键驱动(一)


前面章节,我们分析了input子系统的软件框架;

说到要学习字符驱动得分为两方面:第一方面,了解硬件工作原理,硬件协议,学会看电路图,时序等等;第二方面:了解驱动框架;了解驱动框架的目的是哪些事情是由我们自己动手做的,哪些事情是由内核帮我们完成的;了解硬件方面的原理的目的就是知道该怎么去做!通过分析input子系统的框架,我们知道了,设备层必须是我们自己来做,至于怎么做?首先得去了解硬件相关的东西;我现在主要以按键驱动为例,来讲解设备层该怎么做;


以按键为例,我打算分三步走,

(1)回顾单片机按键驱动(裸板)是怎么实现按键驱动的?

(2)回顾不带input子系统的按键字符设备驱动是怎么实现的?

(3)自己实现带input子系统的按键字符设备驱动;


注意:之前我说过学习驱动最好的老师就是去阅读理解内核代码;今天再强调另一方面:想了解硬件工作原理,硬件协议,以及时序等等,就去学习裸板开发;这个过程必须去看电路图,数据手册(datasheet),以及芯片协议手册,这个是必备技能!!!


那么接下来我们就回顾裸板的按键驱动是什么实现的?

(1)通过电路图,查找按键连接到核心板的寄存器

(2)通过datasheet来查看该寄存器所对应的GPIO引脚该如何设置;比如引脚,设置为按键引脚,中断引脚上升沿触发还是下降沿触发等等;


裸板程序直接操作设备的物理地址,不涉及操作系统,直接通过设置寄存器来控制硬件;由于按键寄存器设置十分简单,我就不罗列代码了;就是设置寄存器后,再去访问状态寄存器就可以获取到硬件的数据了;


裸板程序特点:

(1)直接操作物理地址来控制硬件,因为不涉及操作系统;直接和硬件打交道;

(2)这是最直接了解硬件工作原理的方法;


下一节回顾不带input子系统的按键字符设备驱动是怎么实现的?




标签:input,按键,硬件,寄存器,驱动,子系统
From: https://www.cnblogs.com/Bright-Ho/p/17548441.html

相关文章

  • 符合input子系统的设备驱动之按键驱动(二)
    作者:Bright-Ho联系方式:[email protected]符合input子系统的设备驱动之按键驱动(二)上一节,我们大概的回顾了裸板按键驱动的方法,这一节,我们继续回顾,不带input子系统的按键字符设备驱动是怎么实现的? 这里直接上流程:(1)构造file_operstions结构; staticstructfile_opera......
  • 符合input子系统的设备驱动之按键驱动(三)
    作者:Bright-Ho联系方式:[email protected]符合input子系统的设备驱动之按键驱动(三)前两节我们回顾了按键实现的硬件原理,这一节我们就实现input系统的设备硬件层的内容;(1)首先看入口函数做了哪些事情?46staticstructinput_dev*buttons_dev;47staticstructpin_......
  • 字符设备驱动之输入子系统分析(四)
    作者:Bright-Ho联系方式:[email protected]这一节主要讲解“设备硬件层”;这一层的内容就需要我们自己来实现;这里主要讲解框架;在“核心层”里面会提供一个input_register_device()这样一个函数;在“设备硬件层”先构造并初始化一个structinput_dev*dev结构,通过input_regist......
  • 字符设备驱动之输入子系统分析(三)
     作者:Bright-Ho联系方式:[email protected]输入子系统之“事件处理层”分析:注意:我们现在只是涉及输入子系统的框架;具体细节会涉及到硬件的工作原理,在后面我们写驱动的时候会说到细节方面;这一节,我们接触到了“事件处理层”;事件处理层包含了evdev.c(事件设备),tsdev.c......
  • Windows 驱动程序签名教程(一) --- 开发测试篇
    一、内核驱动签名初篇1.大概聊一聊现有驱动情况1.开启安全启动(SecureBoot)1.使用微软WHQL签名2.使用2013-2015年签发的驱动签名,已过期未吊销未拉黑(不知道什么时候打个补丁会修复).2.关闭安全启动(SecureBoot)1.使用微软WHQL签名2.使用过期签名的sha1sha256都可以正常......
  • 高通个别驱动创建Buffer耗时高问题的解决
    前言最近在优化游戏的时候,发现在在高通特定驱动版本的机器上(855,855+等),创建VB的耗时跟VB的数量成正比,这个应该是驱动的bug。跟官方人员确认过,确实是有这个问题,他们给的解决方案是减少Buffer的数量,经过一轮优化后,Buffer数量减少了将近30%,但是这个耗时的问题还是没能解决,在正常机......
  • 如何实现mysql驱动的具体操作步骤
    MySQL驱动简介及使用示例1.什么是MySQL驱动?MySQL驱动是用于连接和操作MySQL数据库的软件模块。MySQL是一种常用的关系型数据库管理系统,而驱动则是用于连接不同编程语言和MySQL数据库之间的桥梁。驱动有助于程序员使用编程语言操作MySQL数据库,例如执行查询、插入、更新和删除数据......
  • elementUI远程搜索功能遇到的坑(el-autocomplete) 如果是提前加载出全量数据 去掉v-mode
    elementUI远程搜索功能遇到的坑(el-autocomplete)如果是提前加载出全量数据去掉v-model.trim换为v-model=“nameinputvalue”原文链接:https://blog.csdn.net/CuiCui_web/article/details/95939746本文主要是解决下拉框根据返回值隐藏   动态设置建议列表值等问题结构写......
  • element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
    element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)原文链接:https://blog.csdn.net/wyhstars/article/details/81672195前段时间,在实现带输入建议并且支持模糊查询输入框的时候,发现了两个值得注意的小地方。整理出来,以供借鉴。废话不多说,直......
  • 使用input标签的时候报错,提示Form elements must have labels: Element has no title
    使用input标签的时候报错,提示Formelementsmusthavelabels:ElementhasnotitleattributeElementhasnoplaceholderattribute大概就是下面这样其实规范化一下,加个label就可以了......