字符设备驱动之输入子系统分析(一)

这篇具有很好参考价值的文章主要介绍了字符设备驱动之输入子系统分析(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:Bright-Ho

联系方式:836665637@qq.com

前言背景描述:

虽然在网上看了很多有关输入子系统的资料和视频,但是真正的,系统的,全面的,来弄清输入子系统,还是要花些时间和精力的!现在我以一个初学者的角度来分析input输入子系统;

那么分析input输入子系统之前,得先弄清楚几个问题;

1)什么是字符设备?

答:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备;

我们知道linux一切设备皆文件;dev/目录下的文件中,通过ls -ll命令可以查看文件属性,以c开头的都是字符设备文件;

2)什么是input输入子系统?

答:那么什么是input输入子系统呢,内核是操作系统的核心。Linux内核提供很多基本功能,如虚拟内存多任务共享库共享写时拷贝,以及网络功能等,增加各种不同的功能导致内核代码不断的增加;Linux内核把不同功能分成不同的子系统的方法,通过一种整体的结构把各种功能集合在一起,提高了工作效率。同时还提供动态加载模块的方式,为动态修改内核功能提供了灵活性。

3)引入input输入子系统的作用?

答:linux内核中自带了很多的驱动子系统,其中比较典型的就有:input子系统led子系统framebuffer子系统(LCDI2C子系统USB子系统,等等;这些子系统通过一层一层的函数传递封装,实现设备驱动的注册,以及file_operation结构体里面的函数操作等;不需要在单独的设备驱动代码里面进行注册,定义;比如构造file_operation结构体,以及通过register_chrdev来注册,还包括提供给应用程序的接口;直接调用相应的input子系统的核心层提供的接口,即可操作,input子系统帮你完成这些事情;这样引入子系统的最终目的就是简化了驱动程序的实现,子系统把通用的部分都给你实现好了,差异化的东西还得自己来实现;所谓差异化,就是各种不同的硬件设备有自己特有的属性;

所以写驱动的时候,你必须了解两点

(一)了解硬件的工作原理,比如硬件的电路图,硬件的协议,时序图等等;

(二)了解驱动的框架;这里的框架就是所谓的各种子系统框架;

掌握这两点后,你就可以明白,通过驱动的框架,知道哪些事情是内核帮我们完成的,哪些事情是需要我们自己来实现的,这在做驱动移植方面的工作,也是必须了解的两点;

那么这里暂时提出这3个问题,通过上面的三个问题,可以了解到,理解input输入子系统,必须结合相关的字符设备硬件来了解,比如,键盘鼠标按键触摸屏LCD;那么后面的内容我会结合各种硬件来讲解输入子系统;

 文章来源地址https://www.toymoban.com/news/detail-550278.html

到了这里,关于字符设备驱动之输入子系统分析(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux Mii management/mdio子系统分析之二 mdio总线-设备-驱动模型分析

    (转载)原文链接:https://blog.csdn.net/u014044624/article/details/123303139       接着上篇文章继续分析mdio子系统,本章主要介绍mdio子系统的驱动模型,当然了介绍mdio子系统的驱动模型,就绕不开linux系统设备-总线-驱动模型,所有的总线类的驱动,基本上都可以理解为继承自linux系

    2024年01月17日
    浏览(35)
  • 【智能家居项目】裸机版本——网卡设备接入输入子系统 | 业务子系统 | 整体效果展示

    🐱作者:一只大喵咪1201 🐱专栏:《智能家居项目》 🔥格言: 你只管努力,剩下的交给时间! 网络子系统实现了,在我们整个项目框架中,网络子系统也输入子系统中输入设备的之一,所以现在要做的就是网络子系统接入到输入子系统中。 如上图所示,在输入子系统中增

    2024年02月08日
    浏览(35)
  • Linux驱动之input输入子系统

    目录 前言: 介绍: input_dev结构体: 输入子系统的使用流程: 实例测试 : 前言: 输入子系统用于实现Linux系统输入设备(鼠标 键盘 触摸屏  游戏杆)驱动的一种框架。Linux内核将其中的固定部分放入内核,驱动开发时只需要实现其中的不固定部分(主要还是和硬件相关的部分

    2024年02月15日
    浏览(30)
  • 迅为RK3568开发板驱动开发指南-输入子系统

    《iTOP-RK3568开发板驱动开发指南》 更新,本次更新内容对应的是驱动 (第十三篇 输入子系统) 视频,帮助用户快速入门,大大提升研发速度。 第13篇-输入子系统 目录 第1篇 驱动基础篇 第2篇 字符设备基础 第3篇 并发与竞争 第4篇 高级字符设备进阶 第5篇 中断 第6篇 平台总

    2024年03月26日
    浏览(35)
  • 操作系统实验·字符设备驱动程序

    编写一个简单的字符设备驱动程序,该字符设备并不驱动特定的硬件, 而是用内核空间模拟字符设备,要求该字符设备包括以下几个基本操作,打开、读、写和释放,并编写测试程序用于测试所编写的字符设备驱动程序。在此基础上,编写程序实现对该字符设备的同步操作。

    2024年02月10日
    浏览(45)
  • 驱动开发--字符驱动设备2

    字符设备驱动 1.定义 以字节流的形式进行访问,且只能顺序访问的设备,针对字符设备编写的驱动叫做字符设备驱动 2.字符设备框架 用户空间通过IO函数如open、read、write、close等函数接口,调用内核空间中的字符设备驱动函数中的用户自定义的open、read、write、close等函数,通

    2024年02月15日
    浏览(34)
  • 字符设备驱动实例(ADC驱动)

            ADC是将模拟信号转换为数字信号的转换器,在 Exynos4412 上有一个ADC,其主要的特性如下。 (1)量程为0~1.8V。 (2)精度有 10bit 和 12bit 可选。 (3)采样时钟最高为5MHz,转换速率最高为1MSPS (4)具有四路模拟输入,同一时刻只有一路进行转换 (5) 转换完成后可以产生中断。

    2024年02月11日
    浏览(29)
  • 嵌入式Linux(8):字符设备驱动--注册字符类设备

    杂项设备 注册杂项设备: 注销杂项设备: 字符类设备 文件:include/linux/cdev.h 步骤流程: 定义一个cdev结构体。 使用cdev_init函数初始化cdev结构体成员变量。 参数: 第一个:要初始化的cdev结构体 第二个:文件操作集: cdev-ops = fops;//实际就是把文件操作集写ops 使用cdev_add函数

    2023年04月22日
    浏览(40)
  • Linux 驱动学习笔记 ——(1)字符设备驱动

    《【正点原子】I.MX6U嵌入式Linux驱动开发指南》学习笔记 字符设备是 Linux 驱动中最基本的一类设备驱动,字节设备就是按照字节流来读写的设备,常见的字符设备包括:LED、蜂鸣器、按键、I2C 以及 SPI 等。 Linux 中一切皆文件,字符设备驱动加载成功后会在 /dev 目录下生成相

    2024年02月08日
    浏览(42)
  • Linux设备驱动——第三章字符驱动

    当对幸福的憧憬过于急切,那痛苦就在人的心灵深处升起。——加缪 本章的目的是编写一个完整的字符设备驱动。我们开发一个字符驱动是因为这一类适合大部分简单的硬件设备。字符驱动也比块驱动易于理解。本章的最终目的是编写一个模块化的字符驱动,但是我们不会在

    2024年02月08日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包